Как стать автором
Обновить

Как сканировать многостраничные двухсторонние документы, если под рукой только обычный сканер с автоподачей

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров24K

Нет проблемы быстро сканировать документы с любым количеством страниц, если под рукой есть сканер с устройством автоматической подачи. Однако часто МФУ имеют дуплексную двустороннюю печать и сканер, который умеет сканировать только с одной стороны, но имеет устройство автоматической подачи документов.

При этом сканирование больших двухсторонних документов выглядит проблемой, которая поедает большое количество времени.

Инструкция, которую надо сканировать и она частично распечатана с двух сторон
Инструкция, которую надо сканировать и она частично распечатана с двух сторон

Ведь если документ состоит всего из нескольких страниц, то нет необходимости связываться с командной строкой, потому что можно вручную склеить сканы в любой программе, которая работает с PDF, просто переставив местами страницы или даже вручную перевернув их на сканере.

Но что если документ А4 формата имеет несколько десятков или даже сотен страниц как на фотографии?

TL;DR

Решение: используйте консольную программу PDFtk:

pdftk 
A="Лицевая сторона.pdf" 
B="Оборотная сторона.pdf" 
shuffle A1-end Bend-1 
output "Готовый скан.pdf"

Сосканируйте лицевые и оборотные стороны в два отдельных файла

Расшейте документ перед сканированием и убедитесь что не осталось скрепок, скрепляющих листы.

Неважно насколько толстый по объему документ — при сканировании пачки можно разбить все страницы на небольшие группы и добавлять содержимое в один файл — во многих программах сканирования это делает кнопкой добавить.

Сканирование лицевых сторон
Сканирование лицевых сторон

После того как сканирование лицевых сторон завершено вы получите многостраничный файл с условным названием Лицевая сторона.pdf.

Дальше переворачиваем все страницы чтобы оборотная сторона стала лицевой. При этом некоторые оборотные страницы могут быть пустые — ничего разбирать или убирать не надо.

Сканируем через автоподатчик все страницы, которые теперь оказались в обратном порядке, в том числе и пустые.

Сканирование оборотных сторон
Сканирование оборотных сторон

После того как сканирование оборотных сторон завершено вы получите ещё один многостраничный файл, но уже с другим условным названием — Оборотная сторона.pdf.

При этом страницы в нём будут идти в обратном порядке: от самой последней к самой первой.

Магия программы PDFtk

PDFtk (сокращение от PDF Toolkit) — это инструмент командной строки для работы с PDF‑файлами. Он позволяет пользователям объединять несколько PDF‑файлов в один документ, разбивать PDF‑документ на несколько меньших документов, поворачивать страницы, добавлять водяные знаки, прикреплять файлы к PDF‑файлам и многое другое.

PDFtk доступен для Windows, macOS и Linux и может использоваться вместе с другими инструментами командной строки или сценариями для автоматизации задач, связанных с PDF. PDFtk также можно использовать в качестве библиотеки для таких языков программирования, как Python и Ruby.

PDFtk больше не поддерживается, но его функциональность по‑прежнему полезна. Альтернативы PDFtk включают, среди прочего, QPDF, PyPDF2 и pdftk‑java.

Как установить программу PDFtk

Процесс установки PDFtk зависит от вашей операционной системы. Вот шаги для установки PDFtk в Windows, macOS и Linux:

Windows:

  1. Загрузите установщик PDFtk с веб-сайта PDFtk: https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/

  2. Дважды щелкните загруженный файл, чтобы запустить программу установки.

  3. Следуйте инструкциям программы установки, чтобы завершить процесс установки.

  4. После завершения установки откройте командную строку и введите pdftk, чтобы убедиться, что инструмент успешно установлен.

macOS:

  1. Установите Homebrew (если он еще не установлен), введя в Терминале следующую команду:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

  2. После установки Homebrew введите в Терминале следующую команду, чтобы установить PDFtk:

    brew install pdftk

  3. После завершения установки введите pdftk в Терминале, чтобы убедиться, что инструмент успешно установлен.

Linux:

  1. Откройте Терминал и введите следующую команду для установки PDFtk:

    sudo apt-get install pdftk

  2. После завершения установки введите pdftk в Терминале, чтобы убедиться, что инструмент успешно установлен.

    Примечание. Приведенные выше инструкции предназначены для установки PDFtk в дистрибутиве Linux на основе Ubuntu. Процесс установки может отличаться для других дистрибутивов Linux.

Склеиваем два сканированных файла в один

Теперь в одной папке находятся два файла:

  1. Лицевая сторона.pdf — в котором прямой порядок страниц.

  2. Оборотная сторона.pdf — где обратный порядок страниц: от самой последней к самой первой.

Вызываем в терминале команду:

pdftk A="Лицевая сторона.pdf" B="Оборотная сторона.pdf" shuffle A1-end Bend-1 output "Готовый скан.pdf"

pdftk под Windows
pdftk под Windows

Если всё прошло успешно, то программа не выдаёт никакой информации об ошибках.

Проверяйте папку, где появился файл Готовый скан.pdf.

Готовый скан на 162 страницы
Готовый скан на 162 страницы

Можно использовать запуск склейки.bat файл:

:: ===============================================
:: Как сканировать многостраничные двухсторонние документы, если под рукой только обычный сканер с автоподачей
:: 
:: Нет проблемы быстро сканировать документы с любым количеством страниц, если под рукой есть сканер с устройством автоматической подачи. Однако часто МФУ имеют дуплексную двустороннюю печать и сканер, который умеет сканировать только с одной стороны, но имеет устройство автоматической подачи документов.
:: 
:: При этом сканирование больших двухсторонних документов выглядит проблемой, которая поедает большое количество времени.
:: Ведь если документ состоит всего из нескольких страниц, то нет необходимости связываться с командной строкой, потому что можно вручную склеить сканы в любой программе, которая работает с PDF, просто переставив местами страницы или даже вручную перевернув их на сканере.
:: Но что если документ А4 формата имеет несколько десятков или даже сотен страниц как на фотографии?
:: 
:: Подробнее: https://habr.com/ru/articles/721846/
:: 
:: Михаил Шардин, https://shardin.name/
:: ===============================================

@echo off
for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j
set ldt=%ldt:~0,4%-%ldt:~4,2%-%ldt:~6,2%_%ldt:~8,2%-%ldt:~10,2%
echo %COMPUTERNAME%, %ldt%
pdftk A="2023-06-20-0001.pdf" B="2023-06-20-0002.pdf" shuffle A1-end Bend-1 output "%ldt%_scan.pdf"
pause

На этом миссия выполнена — после склейки получается обычный скан с нормальным порядком страниц. Дополнительно, пустые страницы можно удалить отдельно.

Актуальная версия скрипта всегда доступна на на гитхабе.

⚠️ У статьи вышло продолжение: ⚠️
Как убрать пустые оборотные страницы из PDF после двухстороннего сканирования.

Что в итоге

Если у вас нет двухстороннего сканера, то работа с PDFtk через командную строку полностью решает проблему двустороннего сканирования независимо от того Linux, Windows или macOS вы используете.

Автор: Михаил Шардин,

15 марта 2023 г.

Теги:
Хабы:
Всего голосов 26: ↑24 и ↓2+29
Комментарии31

Публикации

Истории

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань