У Windows багато програмного забезпечення для об'єднання файлів PDF, але як ми можемо зробити те ж саме в Ubuntu?
У Windows багато програмного забезпечення для об'єднання файлів PDF, але як ми можемо зробити те ж саме в Ubuntu?
Відповіді:
Якщо вам потрібен інструмент з простим графічним інтерфейсом, спробуйте pdfshuffler . Це дозволяє об'єднувати PDF-файли, а також переставляти та видаляти сторінки. Для пакетної обробки та / або складніших завдань pdftk, звичайно, є більш потужним.
pdfshuffler
роботу чудово 14.04 amd64.
Щоб об'єднати два файли pdf file1.pdf
та file2.pdf
:
pdftk file1.pdf file2.pdf cat output mergedfile.pdf
Додаткова інформація доступна тут машина Way Back .
cat
та output
слідування різним аргументам введення, а потім знову вихідним аргументом.
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 можна багато чого зробити. Ви можете прочитати його документацію для отримання більш детальної інформації.
pdftk
взяв 0m0.484s, gs
зайняв 1m32.898s (це майже на 200 разів повільніше) Файл з gs
приблизно на 21% менше.
file1.pdf file2.pdf
наfile*.pdf
gs
працювали з деякими "невідповідними" PDF-файлами, де pdftk
просто працювали б назавжди.
file*.pdf
з file1.pdf file2.pdf
перед передачею аргументи команди.
Ви також використовуєте pdfunite для об'єднання PDF-документів:
pdfunite in-1.pdf in-2.pdf in-n.pdf out.pdf
out.pdf
буде перезаписаний без попередження, тому pdfunite *.pdf
він не працюватиме, як очікувалося.
cp
також замінює останній аргумент без попередження. Це лише для спішних користувачів (як я) - Мені пощастило, що у мене була резервна копія файлу, про який йде мова ...
Дуже приємне рішення - PDFChain. Це графічний інтерфейс - це PDFTK, де ви можете об'єднати, розділити або навіть додати деякий фон у ваші файли PDF.
apt
не дала жодних результатів, хоча: /
Спробуйте PDFMod спробувати це з проекту GNOME:
Альтернативний підхід - використовувати Latex, як пояснено в цій публікації ( без кореневого доступу, якщо ви встановили pdflatex ): https://tex.stackexchange.com/questions/8662/merge-two-pdf-files-output-by- латекс
Це корисно, якщо у вас немає згаданих інструментів чи привілеїв root, але у вас є pdflatex.
Я копіюю текстовий код нижче для злиття 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
.
Я використовую 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
Це приєднується:
output_1.pdf output_2.pdf output_156.pdf output_157.pdf
в:
out2014-12-14_23_25_36.pdf
Можливо, є простіший спосіб, як впоратися ... :-)
pdfunite output_*.pdf out$(date +%Y-%m-%d-%H_%M_%S).pdf
але він не має впорядкування ls -v
. Очевидним і тривіальним виправленням є назви своїх файлів таким чином, щоб вони, природно, сортували в тому порядку, в який ви хочете включити їх. Якщо ви абсолютно хочете ls -v
, ви можете хоча б втратити трубу tr
, яка нічого не робить тут.
Використовуйте pdfsam http://www.pdfsam.org/, це дуже добре для розділення та об’єднання pdfs
Ви можете використовувати pdftk для об'єднання та зміни документів PDF в цілому. Крім того, є онлайн-сервіс, що робить саме це: http://www.pdfmerge.com/
Ось мій підхід:
Ось результат:
#!/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=$'"'"'\n'"'"' read -d "" -ra x;pdfunite "${x[@]}" merged.pdf'
Джусте вставте цей сценарій у
/home/your_username/.local/share/nautilus/scripts
і назвіть його "merge_pdfs.sh" (наприклад). Потім зробіть його виконуваним (клацніть правою кнопкою миші на merge_pdfs.sh -> вкладка Дозволи -> галочку "Дозволити виконання файлу як програми"
Тож тепер, щоб об’єднати файли PDF, потрібно просто вибрати їх -> клацнути правою кнопкою миші -> скрипти -> merge_pdfs.sh, і це створить файл "merged.pdf" у тому самому каталозі
Сподіваюся, це допомагає!