Если вам нужен инструмент с простым графическим интерфейсом, попробуйте pdfshuffler . Это позволяет объединять PDF-файлы, а также переупорядочивать и удалять страницы. Для пакетной обработки и / или более сложных задач pdftk, конечно, более мощный.
@PushpakDagade ghostscript портит аннотации, в частности комментарии, которые были отмечены (флажок отмечен галочкой), больше не будет иметь эту галочку. Я не знаю, как обойти это. Кроме того, если вы объедините PDF v1.5 + 1.6, выход будет по умолчанию 1.4. Это странное поведение.
Джонатан Комар
2
pdftk имеет необычное использование, где команды catи outputследуют переменным входным аргументам, а затем снова выходной аргумент.
Джефф
3
Похоже, что пакет был удален в 2018.04.
Николас Рауль
1
@NicolasRaoul Я только что скачал его, чтобы быстро установить.
Макс
161
Ghostscript - это пакет (доступный по умолчанию в Ubuntu), который позволяет просматривать или распечатывать файлы PostScript и PDF в другие форматы или преобразовывать эти файлы в другие форматы.
Чтобы использовать Ghostscript для объединения файлов PDF, введите что-то вроде следующего:
gs starts the Ghostscript program.
-dBATCH once Ghostscript processes the PDF files, it should exit.
If you don't include this option, Ghostscript will just keep running.
-dNOPAUSE forces Ghostscript to process each page without pausing for user interaction.
-q stops Ghostscript from displaying messages while it works
-sDEVICE=pdfwrite
tells Ghostscript to use its built-in PDF writer to process the files.
-sOutputFile=finished.pdf
tells Ghostscript to save the combined PDF file with the specified name.
-dAutoRotatePages=/None
Acrobat Distiller parameter AutoRotatePages controls the automatic orientation selection algorithm: For instance: -dAutoRotatePages=/None or /All or /PageByPage.
Ваши входные файлы даже не должны быть файлами PDF. Вы также можете использовать файлы PostScript или EPS или любую их комбинацию.
С Ghostscript вы можете многое сделать. Вы можете прочитать его документацию для более подробной информации.
Правда, но это невероятно медленно. Я только что попытался объединить 45 x 400K одностраничных PDF-файлов. pdftkзаняло 0m0.484s, gsзаняло 1m32.898s (это почти в 200 раз медленнее) gs.
aidan
2
эта команда также работает, если вы используете подстановочный знак для списка файлов, которые нужно объединить. например, заменить file1.pdf file2.pdfнаfile*.pdf
Антониос Хаджигеоргалис
2
Для меня gsработал с некоторыми "неконформными" PDF-файлами, где pdftkбы просто работал вечно.
ntc2
1
Используйте -dPDFSETTINGS=/prepressвариант с улучшением качества. Все спасибо благодаря первоначальному вкладчику
Mohnish
6
@AntoniosHadjigeorgalis Просто для справки и хорошего понимания: это не команда поддержки подстановочных знаков, что на самом деле оболочка замены file*.pdfс file1.pdf file2.pdfперед передачей аргументы команды.
Midgard
82
Вы также используете pdfunite для объединения PDF-документов:
ПРЕДУПРЕЖДЕНИЕ. Существующий файл out.pdfбудет перезаписан без предупреждения, поэтому pdfunite *.pdfон не будет работать должным образом.
krlmlr
1
@krlmlr Вы всегда можете поместить вывод в другой каталог.
BЈовић
Справедливо, cpтакже перезаписывает последний аргумент без предупреждения. Это только для спешащих пользователей (как и я) - мне повезло, у меня была резервная копия файла, о котором идет речь ...
krlmlr
1
Upvote: это простой инструмент командной строки без графического интерфейса, как многие другие ответы здесь. Он красиво инкапсулирует сложности (в основном эквивалентные) решения GhostScript.
tripleee
1
Это тоже очень быстро. Делает работу хорошо. На очень медленном сервере (aws t1.micro) gs занимает 9 секунд, pdftk - 4 секунды, а pdfunite - 0,9 секунды на объединение двух файлов!
@ user2413 Это магазин мгновенных снимков, а не единственный источник программного обеспечения в Ubuntu. Попытка поиска aptтакже не дала никаких результатов: /
Процесс замещения является излишним и потенциально даже вредным . Корректная, намного более простая командная строка, pdfunite output_*.pdf out$(date +%Y-%m-%d-%H_%M_%S).pdfно в ней отсутствует порядок ls -v. Очевидным и тривиальным решением является присвоение имен файлам таким образом, чтобы они естественным образом сортировались в том порядке, в котором вы хотите их включить. Если вы абсолютно хотите ls -v, вы можете, по крайней мере, потерять трубку tr, которая здесь ничего не дает.
Вы можете использовать pdftk для объединения и изменения документов PDF в целом. В качестве альтернативы есть онлайн-сервис для этого: http://www.pdfmerge.com/
Я хотел, чтобы это было очень быстро, поэтому я использовал pdfunite
pdfunite принимает только пути к файлам в середине команды, поэтому мне пришлось почесать голову, чтобы управлять пробелами в пути к файлам. Поэтому я предположил, что все пути к файлам начинаются с "/ home /" и заканчиваются на ".pdf"
и назовите его «merge_pdfs.sh» (например). Затем сделайте его исполняемым (щелкните правой кнопкой мыши на merge_pdfs.sh -> вкладка «Разрешения» -> отметьте «Разрешить запуск файла как программы»).
Так что теперь, чтобы объединить PDF-файлы, вам просто нужно выбрать их -> щелкните правой кнопкой мыши -> scripts -> merge_pdfs.sh, и он создаст файл «merged.pdf» в том же каталоге
Ответы:
PDF-Shuffler
Если вам нужен инструмент с простым графическим интерфейсом, попробуйте pdfshuffler . Это позволяет объединять PDF-файлы, а также переупорядочивать и удалять страницы. Для пакетной обработки и / или более сложных задач pdftk, конечно, более мощный.
источник
pdfshuffler
работает нормально на 14.04 amd64.Pdftk
Объединить два файла PDF
file1.pdf
иfile2.pdf
:Более подробная информация доступна здесь Way Back Machine .
источник
cat
иoutput
следуют переменным входным аргументам, а затем снова выходной аргумент.Ghostscript - это пакет (доступный по умолчанию в Ubuntu), который позволяет просматривать или распечатывать файлы PostScript и PDF в другие форматы или преобразовывать эти файлы в другие форматы.
Чтобы использовать Ghostscript для объединения файлов PDF, введите что-то вроде следующего:
Вот краткое объяснение команды:
Ваши входные файлы даже не должны быть файлами PDF. Вы также можете использовать файлы PostScript или EPS или любую их комбинацию.
С Ghostscript вы можете многое сделать. Вы можете прочитать его документацию для более подробной информации.
Источник
источник
pdftk
заняло 0m0.484s,gs
заняло 1m32.898s (это почти в 200 раз медленнее)gs
.file1.pdf file2.pdf
наfile*.pdf
gs
работал с некоторыми "неконформными" PDF-файлами, гдеpdftk
бы просто работал вечно.-dPDFSETTINGS=/prepress
вариант с улучшением качества. Все спасибо благодаря первоначальному вкладчикуfile*.pdf
сfile1.pdf file2.pdf
перед передачей аргументы команды.Вы также используете pdfunite для объединения PDF-документов:
источник
out.pdf
будет перезаписан без предупреждения, поэтомуpdfunite *.pdf
он не будет работать должным образом.cp
также перезаписывает последний аргумент без предупреждения. Это только для спешащих пользователей (как и я) - мне повезло, у меня была резервная копия файла, о котором идет речь ...PDF цепочка
Очень хорошее решение - PDFChain. Это графический интерфейс PDFTK, где вы можете объединять, разделять или даже добавлять фон в ваши PDF-файлы.
источник
apt
также не дала никаких результатов: /Попробуйте PDFMod из проекта GNOME:
https://wiki.gnome.org/Apps/PdfMod
источник
Альтернативный подход заключается в использовании латекса, как описано в этом посте ( без корневого доступа при условии, что у вас установлен pdflatex ): https://tex.stackexchange.com/questions/8662/merge-two-pdf-files-output-by- латекс
Это полезно, если у вас нет упомянутых инструментов или привилегий root, но у вас есть pdflatex.
Я копирую код tex ниже, чтобы объединить
file1.pdf
иfile2.pdf
. Создайте файл с именемoutput.tex
и поместите:А для компиляции просто используйте:
pdflatex output.tex
Объединенный файл будет назван как
output.pdf
.источник
Я использую pdfseparate для извлечения определенных страниц из большого файла PDF:
и после этого я присоединяюсь ко всем по команде:
Это присоединяется:
в:
Может быть, есть более простой способ справиться ... :-)
источник
pdfunite output_*.pdf out$(date +%Y-%m-%d-%H_%M_%S).pdf
но в ней отсутствует порядокls -v
. Очевидным и тривиальным решением является присвоение имен файлам таким образом, чтобы они естественным образом сортировались в том порядке, в котором вы хотите их включить. Если вы абсолютно хотитеls -v
, вы можете, по крайней мере, потерять трубкуtr
, которая здесь ничего не дает.Вы также можете использовать jPDFTweak , pdfsam или pdfjam .
(Тем не менее, я использую pdftk.)
источник
Используйте pdfsam http://www.pdfsam.org/ это очень хорошо для разделения и объединения PDF-файлов
источник
Вы можете использовать pdftk для объединения и изменения документов PDF в целом. В качестве альтернативы есть онлайн-сервис для этого: http://www.pdfmerge.com/
источник
Вот мой подход:
Вот результат:
Просто вставьте этот скрипт в
и назовите его «merge_pdfs.sh» (например). Затем сделайте его исполняемым (щелкните правой кнопкой мыши на merge_pdfs.sh -> вкладка «Разрешения» -> отметьте «Разрешить запуск файла как программы»).
Так что теперь, чтобы объединить PDF-файлы, вам просто нужно выбрать их -> щелкните правой кнопкой мыши -> scripts -> merge_pdfs.sh, и он создаст файл «merged.pdf» в том же каталоге
Надеюсь, это поможет!
источник