So führen Sie pdf: s mit Imagemagick zusammen (Auflösungsproblem)

43

Wenn ich versuche, zwei PDF-Dateien mit Imagemagick zusammenzuführen

convert pdf1.pdf pdf2.pdf temp.pdf

Die resultierende Datei temp.pdf scheint eine sehr niedrige Auflösung zu haben. Wie kann ich die Auflösung der Quelldateien beibehalten?


quelle

Antworten:

53

Barns hat recht, aber wenn pdftk nicht funktioniert hat, versuchen Sie es mit Ghostscript.

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=temp.pdf pdf1.pdf pdf2.pdf

quelle
Funktionierte perfekt und auch schnell - viel schneller als ImageMagick mit dem -density-Flag.
Brionius
Dies sollte die richtige Antwort sein. Nicht, dass ImageMagick nicht funktioniert. es funktioniert auch. Aber wie @Brionius bemerkte, ist gs viel schneller und die Qualität des resultierenden PDFs ist erstklassig.
Jagtesh Chadha
Beachten Sie, dass Sie * .pdf anstelle der Liste pdf1.pdf und pdf2.pdf am Ende dieses Befehls verwenden können, um alle PDF-Dateien in einem Ordner in eine einzelne PDF-Datei zu konvertieren.
Colin D
Ich hatte einige Probleme mit der Schrift, einige Seiten verlieren ihre Schrift. Gibt es eine Möglichkeit, wie ich es wählen kann?
Zloy Smiertniy
20

Der Konvertierungsbefehl von Imagemagick wird normalerweise zum Konvertieren von Bilddateien von einem Format in ein anderes verwendet. In diesem Fall wird möglicherweise tatsächlich eine interne Konvertierung durchgeführt, bevor die beiden "Bilder" (PDFs) in eine einzige Datei ausgegeben werden.

Ich würde vorschlagen, dass Sie stattdessen das PDF Toolkit (pdftk) verwenden: http://www.accesspdf.com/pdftk/

Aus den Beispielen auf der Website sollte dies so einfach sein wie:

pdftk pdf1.pdf pdf2.pdf cat output temp.pdf
Richard
quelle
Ich arbeite unter OS X 10.6.1 und habe versucht, pdftk über Macports zu installieren. Es scheint, dass pdftk auf einem Mac veraltet ist und die Installation nicht abgeschlossen werden kann. Also habe ich versucht, dies mit Imagemagick zu tun.
Unter Ubuntu war die Installation von pdftk von apt aus kein Problem, und es hat den Trick hervorragend ausgeführt. Ich habe ImageMagick bereits zum Zusammenfügen von PDFs mit großem Erfolg verwendet, aber da PDFs zuerst gerastert werden (verständlicherweise funktioniert dies nicht mit Vektoren), sieht es für die meisten Textdokumente nicht so gut aus. Aber pdftk hat super funktioniert - danke für den Vorschlag.
Iguananaut
Großartig ... danke
Dan Ortega
Lassen Sie uns diesen einen upvote, pdftk funktioniert viel besser als GhostScript dies zu tun.
Dan Ortega
18

Wenn sich jede Datei, die Sie zusammenführen möchten, in demselben Ordner befindet:

convert -density 150 $(ls -rt *pdf) output.pdf

Das Argument -density 150erhält die Qualität der zusammengeführten PDF-Dateien.

Juda
quelle
5
Als Randnotiz für Ihre gesamte PDF-Syntax können Sie den Befehl sub-ls weglassen:convert -density 150 *.pdf output.pdf
Josh
'* .pdf' und '$ (ls -rt * pdf)' können zu unterschiedlichen Ausgaben führen.
Shantanoo
8

Ich vergesse immer, wie man das macht und finde diese Frage zuerst, wenn ich suche.

convert -density 600 file1.pdf file2.pdf -resize 50% new.pdf

Das verknüpfte Beispiel hat eine Dichte von 144, die jedoch nie hoch genug war, um nicht pixelig zu wirken.

http://web.archive.org/web/20130311071316/http://studio.imagemagick.org/pipermail/magick-users/2009-September/022958.html

Leslie Pajuelo
quelle
Entschuldigung, der Link ist jetzt tot.
Sablefoste,
0

Ich konnte keine Möglichkeit finden, zwei PDF-Dateien zusammenzufügen, während die Auflösung und der Text intakt blieben, aber ich fand eine Möglichkeit, sie in eine hochauflösende PNG-Datei zu konvertieren.

pdftoppm -f 1 -l 1 -aa yes -aaVector yes -png -r 300 page.pdf > tmp1.png
pdftoppm -f 2 -l 2 -aa yes -aaVector yes -png -r 300 page.pdf > tmp2.png
convert tmp1.png tmp2.png +append -quality 100 page.png

Dies nimmt die ersten beiden Seiten von page.pdf in Anspruch und fügt sie zu einer nebeneinander hochauflösenden PNG-Datei zusammen.

Ändern Sie die letzte Zeile in

convert tmp1.png tmp2.png +append -quality 100 page.pdf

führt zu einer PDF-Dokumentausgabe, wie ich später herausgefunden habe, nachdem ich mit pngtopnm, pnmtops, ps2pdf herumgespielt habe.

Barry Dmytro
quelle
2
-1 für den Vorschlag, ein (mögliches) Vektorbild zu rastern. Das ist nicht der richtige Weg.
Marco