Нет проблемы быстро сканировать документы с любым количеством страниц, если под рукой есть сканер с устройством автоматической подачи. Однако часто МФУ имеют дуплексную двустороннюю печать и сканер, который умеет сканировать только с одной стороны, но имеет устройство автоматической подачи документов.
При этом сканирование больших двухсторонних документов выглядит проблемой, которая поедает большое количество времени.
Ведь если документ состоит всего из нескольких страниц, то нет необходимости связываться с командной строкой, потому что можно вручную склеить сканы в любой программе, которая работает с 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:
Загрузите установщик PDFtk с веб-сайта PDFtk: https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
Дважды щелкните загруженный файл, чтобы запустить программу установки.
Следуйте инструкциям программы установки, чтобы завершить процесс установки.
После завершения установки откройте командную строку и введите
pdftk
, чтобы убедиться, что инструмент успешно установлен.
macOS:
-
Установите Homebrew (если он еще не установлен), введя в Терминале следующую команду:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
После установки Homebrew введите в Терминале следующую команду, чтобы установить PDFtk:
brew install pdftk
После завершения установки введите
pdftk
в Терминале, чтобы убедиться, что инструмент успешно установлен.
Linux:
-
Откройте Терминал и введите следующую команду для установки PDFtk:
sudo apt-get install pdftk
-
После завершения установки введите
pdftk
в Терминале, чтобы убедиться, что инструмент успешно установлен.Примечание. Приведенные выше инструкции предназначены для установки PDFtk в дистрибутиве Linux на основе Ubuntu. Процесс установки может отличаться для других дистрибутивов Linux.
Склеиваем два сканированных файла в один
Теперь в одной папке находятся два файла:
Лицевая сторона.pdf
— в котором прямой порядок страниц.Оборотная сторона.pdf
— где обратный порядок страниц: от самой последней к самой первой.
Вызываем в терминале команду:
pdftk A="Лицевая сторона.pdf" B="Оборотная сторона.pdf" shuffle A1-end Bend-1 output "Готовый скан.pdf"
Если всё прошло успешно, то программа не выдаёт никакой информации об ошибках.
Проверяйте папку, где появился файл Готовый скан.pdf.
На этом миссия выполнена — после склейки получается обычный скан с нормальным порядком страниц. Дополнительно, пустые страницы можно удалить отдельно.
Что в итоге
Если к вас нет двухстороннего сканера, то работа с PDFtk через командную строку полностью решает проблему двустороннего сканирования независимо от того Linux, Windows или macOS вы используете.
Автор: Михаил Шардин,
15 марта 2023 г.
Комментарии (31)
ts347
00.00.0000 00:00+10Задумался, а нет ли в моей любимой программе PDF24 такой функции. Посмотрел — конечно, есть. Модуль "Объединить PDF", метод — "Сопоставить".
Всем настоятельно рекомендую эту бесплатную и невероятно мощную программу. Всё, что мне до сих пор приходило в голову делать с PDF — она может.
Dakar
00.00.0000 00:00+2Поддерживаю. Очень удобная программа. Еще бы нумерацию страниц могла проставлять - было б вообще супер. Ради простановки страниц однажды я и познакомился с PDFtk, если память не измееяет.
ts347
00.00.0000 00:00+1В текущей версии умеет.
У них некоторое время назад произошло мощное обновление, в результате которого количество функций выросло раза в три.
empenoso Автор
00.00.0000 00:00Adobe Acrobat DC и PDF-Xchange почему-то такого функционала не имеют ????♂️
IDDQDesnik
00.00.0000 00:00+1В качестве альтернативы так же есть бесплатный опенсорсный PDFSAM Basic.
Javian
00.00.0000 00:00+1off А чем можно "ремонтировать" PDF? Для файлов, которые "Файл поврежден и не может быть восстановлен."
aborouhin
00.00.0000 00:00+1Я использую PDF X-Change, но она платная :(
При открытии битого файла сразу предлагает сохранить исправленную копию. Рутинное действие для квитанций об отправке электронного заказного письма Почтой России, которые всегда скачиваются с их сайта битыми (не знаю, что они там напортачили).
tkl
00.00.0000 00:00+2можно попробовать cpdf или ghostscript
https://www.coherentpdf.com/cpdfmanual/cpdfmanualch1.html#x5-350001.13
когда-то давно помогло починить побитые какой-то питоновской либой файлы
valeriyvan
00.00.0000 00:00На macOS невозможно установить при помощи brew:
brew install pdftk Running `brew update --auto-update`... ==> Auto-updated Homebrew! Updated 4 taps (homebrew/bundle, homebrew/services, homebrew/core, and homebrew/cask). ==> New Formulae aztfy ==> New Casks irpf2021 irpf2022 keyfinder scansion Warning: Calling plist_options is deprecated! Use service.require_root instead. Please report this issue to the appveyor/brew tap (not Homebrew/brew or Homebrew/homebrew-core), or even better, submit a PR to fix it: /opt/homebrew/Library/Taps/appveyor/homebrew-brew/Formula/appveyor-server.rb:33 You have 39 outdated formulae and 3 outdated casks installed. You can upgrade them with brew upgrade or list them with brew outdated. Warning: No available formula with the name "pdftk". Did you mean pdftoipe? ==> Searching for similarly named formulae and casks... ==> Formulae pdftk-java pdftoipe To install pdftk-java, run: brew install pdftk-java
empenoso Автор
00.00.0000 00:00К сожалению лично у меня нет macOS - может быть кто-то из пользователей подскажет.
aborouhin
00.00.0000 00:00+1Способ хороший, но для большинства пользователей, сканирующих документы, что-то запустить из командной строки - недостижимые высоты мастерства :) (работаю с юристами)
Благо, сканирование в 90% случаев предполагает и OCR сразу, а FineReader так делать тоже умеет из коробки.
empenoso Автор
00.00.0000 00:00Думаю, что согласен на счёт недостижимых высот мастерства :) правда это печально.
У меня например для этих больших документов OCR не предполагался - там всякие сертификаты в основном.aborouhin
00.00.0000 00:00+1Ну в FineReader можно, в принципе, и без OCR это сделать, раз уж он ради OCR куплен и установлен. Но у OCR, даже если не текстовый слой сам особо не нужен, ещё плюс в том, что листы автоматически поворачивает в зависимости от содержимого (когда в середине документа листов на 300 три широких таблички по 10 листов каждая в альбомной ориентации - бесит). Хотя для простых случаев, согласен, из командной строки мне самому было бы проще.
vassabi
00.00.0000 00:00+2эх! а я писал скрипт на питоне
from PyPDF2 import PdfFileWriter, PdfFileReader
from PIL import Image### и там далее:
### читаем из pdf страницы как картинки,
### делаем что угодно с картинками,
### сохраняем картинки как страницы в pdf
falconandy
00.00.0000 00:00+1Для манипуляций с PDF есть еще такая утилита pdfcpu. Написана на Go, может использоваться как библиотека из своих go-программ.
imageman
00.00.0000 00:00+1Есть еще вариант. Сканируем все (пусть даже) в pdf. Из pdf делаем одностраничные pdf (в Акробате extract pages). Получаем набор pdf, который нужно правильно переименовать. Для этого в Total Commander (или любой другой программе для переименования) вызываем Multi-rename tool. И делаем шаблон с [C] в одном случае start - 1; step - 2, а в другом start - 2; step - 2 (digits - 4). Т.е. любым доступным способом делаем так, что бы при сортировке по алфавиту номера страниц были правильные. После этого объединяем получившиеся pdf в один (можно через Акробат).
empenoso Автор
00.00.0000 00:00Но мой вариант кажется проще :)
imageman
00.00.0000 00:00PDFtk "инструмент командной строки" - эти три слова многих современных специалистов (не говоря уже о пользователях) вгоняют в скуку и депрессию :-) Поэтому альтернативный вариант кому-то может оказаться проще - нужно всего-то разбить документы постранично, правильно переименовать файлы и собрать обратно все файлы в один документ.
sevmax
Спасибо! Сканирую редко, но этот подход реально может сэкономить время!
empenoso Автор
Да, пришлось разбираться и мне тоже было очень странно почему такие гиганты как тот же акробат не умеют постранично объединять два файла.