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?

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

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

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.


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



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.


2
-1 für den Vorschlag, ein (mögliches) Vektorbild zu rastern. Das ist nicht der richtige Weg.
Marco
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.