Es gibt eine Menge Software in Windows, mit der PDF-Dateien zusammengeführt werden können, aber wie können wir das auch in Ubuntu tun?
Es gibt eine Menge Software in Windows, mit der PDF-Dateien zusammengeführt werden können, aber wie können wir das auch in Ubuntu tun?
Antworten:
Wenn Sie ein Tool mit einer einfachen Benutzeroberfläche möchten, versuchen Sie es mit pdfshuffler . Es ermöglicht das Zusammenführen von PDFs sowie das Neuanordnen und Löschen von Seiten. Für die Stapelverarbeitung und / oder kompliziertere Aufgaben ist pdftk natürlich leistungsfähiger.
pdfshuffler
funktioniert auf 14,04 amd64.
So fügen Sie zwei PDF-Dateien zusammen file1.pdf
und file2.pdf
:
pdftk file1.pdf file2.pdf cat output mergedfile.pdf
Weitere Informationen finden Sie hier Way Back Machine .
cat
und output
verschiedene Eingabeargumente gefolgt von einem Ausgabeargument verwendet werden.
Ghostscript ist ein Paket (standardmäßig in Ubuntu verfügbar), mit dem Sie PostScript- und PDF-Dateien in anderen Formaten anzeigen oder drucken oder diese Dateien in andere Formate konvertieren können.
Geben Sie Folgendes ein, um Ghostscript zum Kombinieren von PDF-Dateien zu verwenden:
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dAutoRotatePages=/None -sOutputFile=finished.pdf file1.pdf file2.pdf
Hier ist eine kurze Erklärung des Befehls:
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.
Ihre Eingabedateien müssen nicht einmal PDF-Dateien sein. Sie können auch PostScript- oder EPS-Dateien oder eine beliebige Mischung der drei verwenden.
Mit Ghostscript können Sie viel anfangen. Sie können die Dokumentation für weitere Details lesen .
pdftk
dauerte 0m0.484s, gs
dauerte 1m32.898s (das ist fast 200x langsamer) Die Datei von gs
war allerdings um 21% kleiner.
file1.pdf file2.pdf
mitfile*.pdf
gs
mit einigen "nicht konformen" PDFs gearbeitet, bei denen pdftk
es nur ewig laufen würde.
file*.pdf
mit file1.pdf file2.pdf
bevor die Argumente zu dem Befehl übergeben.
Sie können pdfunite auch zum Zusammenführen von PDF-Dokumenten verwenden:
pdfunite in-1.pdf in-2.pdf in-n.pdf out.pdf
out.pdf
wird ohne Warnung überschrieben, pdfunite *.pdf
funktioniert also nicht wie erwartet.
cp
überschreibt auch das letzte Argument ohne Vorwarnung. Dies ist nur für rauschende Benutzer (wie ich) - Ich hatte Glück, dass ich eine Sicherungskopie der fraglichen Datei hatte ...
Eine sehr schöne Lösung ist PDFChain. Die GUI ist ein Frontend von PDFTK, mit dem Sie PDF-Dateien zusammenführen, teilen oder sogar Hintergrundinformationen hinzufügen können.
apt
ergab jedoch auch keine Ergebnisse: /
Ein alternativer Ansatz besteht darin, Latex wie in diesem Beitrag beschrieben zu verwenden ( ohne Root-Zugriff, vorausgesetzt, Sie haben pdflatex installiert): https://tex.stackexchange.com/questions/8662/merge-two-pdf-files-output-by- Latex
Dies ist nützlich, wenn Sie weder über die genannten Tools noch über Root-Rechte verfügen, aber über pdflatex.
Ich kopiere den folgenden tex-Code zum Zusammenführen file1.pdf
und file2.pdf
. Erstellen Sie eine Datei mit dem Namen output.tex
und setzen Sie:
\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-]{file1}
\includepdf[pages=-]{file2}
\end{document}
Und zum Kompilieren verwenden Sie einfach: pdflatex output.tex
Die zusammengeführte Datei wird als benannt output.pdf
.
Ich verwende pdfseparate, um bestimmte Seiten aus einer großen PDF-Datei zu extrahieren:
pdfseparate -f 156 -l 157 input.pdf output_%d.pdf
pdfseparate -f 1 -l 2 input.pdf output_%d.pdf
und danach schließe ich mich allen per Kommando an:
pdfunite $(ls -v output_*.pdf | tr '\n' ' ') out$(date +%Y-%m-%d_%H_%M_%S ).pdf
Dies verbindet:
output_1.pdf output_2.pdf output_156.pdf output_157.pdf
in:
out2014-12-14_23_25_36.pdf
Vielleicht gibt es einen einfacheren Weg, um damit umzugehen ... :-)
pdfunite output_*.pdf out$(date +%Y-%m-%d-%H_%M_%S).pdf
aber es fehlt die Reihenfolge ls -v
. Eine offensichtliche und triviale Lösung besteht darin, Ihre Dateien so zu benennen, dass sie auf natürliche Weise in der Reihenfolge sortiert werden, in der Sie sie einschließen möchten. Wenn Sie unbedingt wollen ls -v
, können Sie zumindest die Pfeife verlieren tr
, was hier nichts bringt.
Sie können auch jPDFTweak , pdfsam oder pdfjam verwenden .
(Das heißt, ich benutze pdftk.)
Verwenden Sie pdfsam http://www.pdfsam.org/, es ist sehr gut zum Teilen und Zusammenführen von pdfs
Sie können pdftk verwenden , um PDF-Dokumente im Allgemeinen zusammenzuführen und zu ändern. Alternativ gibt es einen Onlinedienst, der genau das ermöglicht: http://www.pdfmerge.com/
Hier ist mein Ansatz:
Hier ist das Ergebnis:
#!/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'
Juste fügen Sie dieses Skript in
/home/Ihr_Benutzername/.local/share/nautilus/scripts
und nennen Sie es "merge_pdfs.sh" (zum Beispiel). Machen Sie es dann ausführbar (Rechtsklick auf merge_pdfs.sh -> Registerkarte Berechtigungen -> Häkchen bei "Datei als Programm ausführen lassen"
Um PDF-Dateien zusammenzuführen, müssen Sie sie nur auswählen -> Rechtsklick -> Skripte -> merge_pdfs.sh und es wird eine "merged.pdf" -Datei im selben Verzeichnis erstellt
Ich hoffe es hilft!