Существует ли быстрая однострочная сборка для объединения нескольких PDF-файлов в один?
Я знаю, что это можно сделать с помощью Preview.app
источник
Существует ли быстрая однострочная сборка для объединения нескольких PDF-файлов в один?
Я знаю, что это можно сделать с помощью Preview.app
Взгляните на «Объединение файлов PDF в командной строке в OSX» в разделе Присоединение файлов PDF в OS X из командной строки .
Оказывается, начиная с Tiger, OSX поставляется со скриптом Python, который делает именно то, что вам нужно. Сценарий уже исполняемый, и Python предустановлен на OS X, поэтому все, что вам нужно сделать, чтобы запустить его, это открыть терминал и набрать
"/System/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py" -o PATH/TO/YOUR/MERGED/FILE.pdf /PATH/TO/ORIGINAL/1.pdf /PATH/TO/ANOTHER/2.pdf /PATH/TO/A/WHOLE/DIR/*.pdf
Кроме того, на связанной странице он предлагает сделать символическую ссылку на join.py
файл , чтобы сделать набрав легче , однако они опускали -s
в ln -s ... ...
, и без него, жесткая ссылка создается. Возможно, это не имеет значения, хотя я бы упомянул это.
Просто установите Ghostscript, используя Brew с командой:
Затем выполните команду со всеми перечисленными файлами:
источник
gs
поэтому для дальнейшего использования это решение будет столь же удобным.Python-скрипт Apple в действии Automator очень медленный, поскольку он использует API-интерфейсы CoreGraphics CGPDFDocument, а не более новую платформу PDFKit. Он также импортирует всю библиотеку CoreGraphics, а не только необходимые API.
Альтернативный, более быстрый скрипт на Python можно найти здесь:
Этот скрипт также добавляет оглавление в PDF, перечисляя каждый файл компонента (и объединяя существующие ToC), чего нет у Apple.
Его можно использовать в командной строке (с именами файлов PDF в качестве аргументов) или в действии сценария оболочки Automator для создания Quick Action / Service для Finder.
источник
time
команду в сочетании с вашимjoinpdfs.py
сценарием , встроеннымjoin.py
сценарием и двумя файлами ~ 200 МБ каждый, вашjoinpdfs.py
сценарий был на 9 секунд быстрее встроенногоjoin.py
сценария , и, конечно, было добавлено преимущество в том, что TOC не поврежден , Ницца! +1FWIW, я написал небольшую небольшую программу, которая позволяет вам делать это, не полагаясь на внешние зависимости, такие как системный питон и тому подобное. На github здесь: pdfmerge и довольно простой в использовании, может либо передать ему список файлов PDF для слияния
pdfmerge in1.pdf in2.pdf ... out.pdf
, либо передать ему список файлов для слияния в текстовом файле, например,pdfmerge infileslist.txt out.pdf
либо просто сделать текущий каталог в порядке ABCpdfmerge out.pdf
. Я написал его как учебный проект, так что он бесплатный и открытый, и вы можете получить последний бинарный файл на вкладке релизов на github.источник
join.py
скрипт из действия Объединить PDF-страницы в Automator, больше ничего не нужно загружать или устанавливать, но чтобы использовать ваш, мне придется скачать и установить его. Также не увидел двоичный файл по ссылке.опираясь на на @Bartosz Petryński «s хороший ответ , мы можем сделать собственную минимальную
cpdf
программу на вершине GhostScript:тогда используйте это как:
источник
Я нашел бесплатный инструмент командной строки Coherent PDF, чтобы быть лучшим вариантом. Это очень быстро, без потерь и не портит ориентацию или гиперссылки, как некоторые другие решения. Формат:
источник