Как объединить несколько файлов PDF?

В Windows существует множество программ для объединения PDF-файлов, но как мы можем сделать то же самое в Ubuntu?

342
задан 08.10.2014, 15:04

12 ответов

PDF-Shuffler Install PDF-Shuffler

Если вам нужен инструмент с простым графическим интерфейсом, попробуйте pdfshuffler . Это позволяет объединять PDF-файлы, а также переупорядочивать и удалять страницы. Для пакетной обработки и / или более сложных задач, pdftk, конечно, более мощный.

Screenshot of PDF-Shuffler

209
ответ дан 10.09.2019, 17:19
  • 1
    Я попробовал это - это не сработало 10.04 – tripleee 13.03.2012, 15:06
  • 2
    12.04 pdfshuffler всегда жалуется, что «слишком много значений для распаковки», что делает его непригодным для использования. – Martin Tournoij 13.04.2013, 02:15
  • 3
    Устанавливается и работает как брелок 14.04. Огромное спасибо!! – Marc B 13.02.2014, 09:26
  • 4
    Я также могу подтвердить, что pdfshuffler отлично работает на 14.04 amd64. – Brad 29.12.2014, 09:35
  • 5
    Также отлично работает на 16.04.1 – zloctb 08.11.2016, 00:36

pdftk Install pdftk

Объединить два файла PDF, file1.pdf и file2.pdf:

pdftk file1.pdf file2.pdf cat output mergedfile.pdf
[119 ] Более подробная информация доступна здесь Машина обратного хода .

329
ответ дан 10.09.2019, 17:19

Ghostscript - это пакет (доступный по умолчанию в Ubuntu), который позволяет просматривать или распечатывать файлы PostScript и PDF в другие форматы или конвертировать эти файлы в другие форматы.
Чтобы использовать Ghostscript для объединения файлов PDF, введите что-то вроде следующего:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dAutoRotatePages=/None -sOutputFile=finished.pdf  file1.pdf file2.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 можно многое сделать. Вы можете прочитать его документацию для более подробной информации.

Источник

156
ответ дан 10.09.2019, 17:19
  • 1
    Правда, но это <я> невероятно медленно. Я только что попытался объединить 45 x 400K одностраничных PDF-файлов. pdftk заняло 0m0.484s, gs - 1m32.898s (это почти в 200 раз медленнее). Файл из gs был примерно на 21% меньше. – halfer 22.03.2013, 19:47
  • 2
    эта команда также работает, если вы используете подстановочный знак для списка файлов, которые нужно объединить. например, заменить file1.pdf file2.pdf на file*.pdf – laukok 30.05.2014, 03:58
  • 3
    Для меня gs работал с некоторыми «неконформными» PDF-файлы, где pdftk будет работать вечно. – claudiu.nicola 09.12.2014, 16:37
  • 4
    Используйте опцию -dPDFSETTINGS=/prepress из улучшения качества. Все спасибо благодаря оригинальному вкладчику – JesusMurF 21.04.2016, 00:58
  • 5
    @AntoniosHadjigeorgalis Просто для справки и хорошего понимания: это не команда, поддерживающая подстановочные знаки, это фактически оболочка, заменяющая file*.pdf на file1.pdf file2.pdf перед передачей аргументов команде. – m93a 15.06.2016, 23:15

Вы также используете pdfunite для объединения PDF-документов:

pdfunite in-1.pdf in-2.pdf in-n.pdf out.pdf
80
ответ дан 10.09.2019, 17:19
  • 1
    ВНИМАНИЕ: Существующий файл out.pdf будет перезаписан без предупреждения, поэтому pdfunite *.pdf не будет работать должным образом. – TamusJRoyce 05.12.2014, 03:02
  • 2
    @krlmlr Вы всегда можете поместить вывод в другой каталог. – Jordy 05.12.2014, 03:05
  • 3
    Справедливо, cp также перезаписывает последний аргумент без предупреждения. Это только для спешащих пользователей (как и я) - мне повезло, у меня была резервная копия рассматриваемого файла ... – Pekka 웃 05.12.2014, 03:08
  • 4
    Upvote: это простой инструмент командной строки без графического интерфейса, как многие другие ответы здесь. Он красиво инкапсулирует сложности (в основном эквивалентные) решения GhostScript. – Marc B 14.04.2015, 03:28
  • 5
    Это тоже очень быстро. Делает работу хорошо. На очень медленном сервере (aws t1.micro) gs занимает 9 секунд, pdftk - 4 секунды, а pdfunite - 0,9 секунды на объединение двух файлов! – CyberMonk 16.07.2015, 08:49

PDF Chain Install PDF Chain

Очень хорошее решение - PDFChain. Это графический интерфейс PDFTK, где вы можете объединять, разделять или даже добавлять фон в ваши PDF-файлы.

34
ответ дан 10.09.2019, 17:19

Попробуйте PDFMod из проекта GNOME:

https://wiki.gnome.org/Apps/PdfMod

11
ответ дан 10.09.2019, 17:19
  • 1
    не делает слияния. – T.J. Crowder 06.08.2018, 19:44
  • 2
    в прошлом он сливался, теперь просто рушится, вместо этого я использовал pdfshuffler, и он отлично работал – Joshua - Pendo 12.12.2018, 09:41

Я использую pdfseparate для извлечения определенных страниц из большого файла pdf:

pdfseparate -f  156 -l 157 input.pdf  output_%d.pdf 
pdfseparate -f  1   -l 2   input.pdf  output_%d.pdf 

, а потом присоединяюсь к ним по команде:

pdfunite $(ls -v output_*.pdf | tr '\n' ' ') out$(date  +%Y-%m-%d_%H_%M_%S ).pdf

Это объединяет:

[112 ]

в:

out2014-12-14_23_25_36.pdf

Может быть, есть более простой способ справиться ...: -)

6
ответ дан 10.09.2019, 17:19

Вы также можете использовать jPDFTweak , pdfsam или pdfjam .

(Тем не менее, я использую pdftk.)

5
ответ дан 10.09.2019, 17:19

Используйте pdfsam http://www.pdfsam.org/ , это очень хорошо для разделения и объединения PDF-файлов

5
ответ дан 10.09.2019, 17:19

Вы можете использовать pdftk для объединения и изменения документов PDF в целом. В качестве альтернативы для этого есть онлайн-сервис: http://www.pdfmerge.com/

4
ответ дан 10.09.2019, 17:19

Альтернативный подход заключается в использовании латекса, как описано в этом посте ( без корневого доступа при условии, что у вас установлено pdflatex ): https: //tex.stackexchange. com / questions / 8662 / merge-two-pdf-files-output-by-latex

Это полезно, если у вас нет упомянутых инструментов или привилегий root, но у вас есть pdflatex.

Я копирую код tex ниже, чтобы объединить file1.pdf и file2.pdf. Создайте файл с именем output.tex и поместите:

\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-]{file1}
\includepdf[pages=-]{file2}
\end{document}

. А для компиляции просто используйте: pdflatex output.tex

Объединенный файл будет называться output.pdf.

8
ответ дан 10.09.2019, 17:19

Вот мой подход:

  • Я хотел, чтобы он был легко доступен, поэтому я создал ярлык правой кнопкой мыши в Nautilus (см. https://help.ubuntu.com/community / NautilusScriptsHowto )
  • Я хотел, чтобы это было очень быстро, поэтому я использовал pdfunite
  • pdfunite принимает только пути к файлам в середине команды, поэтому мне пришлось почесать голову, чтобы управлять пробелы в пути к файлам. Поэтому я предположил, что все пути к файлам начинаются с "/ home /" и заканчиваются на ".pdf"

Вот результат:

#!/bin/sh
CLEANED_FILE_PATHS=$(echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS | sed 's,.pdf /home/,.pdf\\n/home/,g')
echo $CLEANED_FILE_PATHS | bash -c 'IFS= 

Juste вставьте этот скрипт в

/home/your_username/.local/share/nautilus/scripts

и назовите его «merge_pdfs.sh» (например). Затем сделайте его исполняемым (щелкните правой кнопкой мыши на merge_pdfs.sh -> вкладка «Разрешения» -> установите флажок «Разрешить выполнение файла в качестве программы»

). Теперь, чтобы объединить файлы PDF, вам просто нужно выбрать их -> щелкните правой кнопкой -> scripts -> merge_pdfs.sh, и он создаст файл «merged.pdf» в том же каталоге

Надеюсь, это поможет!

"'"'\n'"'"' read -d "" -ra x;pdfunite "${x[@]}" merged.pdf'

Juste вставьте этот скрипт в

/home/your_username/.local/share/nautilus/scripts

и назовите его «merge_pdfs.sh» (например). Затем сделайте его исполняемым (щелкните правой кнопкой мыши на merge_pdfs.sh -> вкладка «Разрешения» -> установите флажок «Разрешить выполнение файла в качестве программы»

). Теперь, чтобы объединить файлы PDF, вам просто нужно выбрать их -> щелкните правой кнопкой -> scripts -> merge_pdfs.sh, и он создаст файл «merged.pdf» в том же каталоге

Надеюсь, это поможет!

1
ответ дан 10.09.2019, 17:19

Теги

Похожие вопросы