Comment fusionner des fichiers pdf: s avec Imagemagick (problème de résolution)

43

Lorsque j'essaie de fusionner deux fichiers .pdf avec Imagemagick

convert pdf1.pdf pdf2.pdf temp.pdf

Le fichier temp.pdf résultant semble avoir une très faible résolution. Comment puis-je conserver la résolution identique à celle des fichiers source?


la source

Réponses:

53

Barns a raison, mais si pdftk ne fonctionne pas, essayez ghostscript.

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

la source
Fonctionne parfaitement et rapidement aussi - beaucoup plus rapidement que d'utiliser ImageMagick avec l'indicateur -density.
Brionius
Cela devrait être la bonne réponse. Pas que ImageMagick ne fonctionne pas; ça marche aussi. Mais comme l'a noté @Brionius, gs est beaucoup plus rapide et la qualité du fichier PDF obtenu est excellente.
Jagtesh Chadha
Notez que vous pouvez utiliser * .pdf au lieu de la liste de pdf1.pdf et pdf2.pdf à la fin de cette commande pour convertir tous les pdf d'un dossier en un seul fichier PDF.
Colin D
J'ai eu quelques problèmes avec la police, certaines pages perdent leur police. Y a-t-il un moyen de le choisir?
Zloy Smiertniy
20

La commande de conversion d’Imagemagick est normalement utilisée pour convertir des fichiers image d’un format à un autre. Dans ce cas, il est possible qu’une conversion interne soit réellement effectuée avant de produire les deux "images" (PDF) dans un seul fichier.

Je suggérerais que vous envisagiez d’utiliser le PDF Toolkit (pdftk) à la place http://www.accesspdf.com/pdftk/

D'après les exemples sur le site Web, cela devrait être aussi simple que:

pdftk pdf1.pdf pdf2.pdf cat output temp.pdf
Richard
la source
Je suis sous OS X 10.6.1 et j'ai essayé d'installer pdftk via Macports. Il semble que pdftk soit obsolète sur Mac, l’installation ne se termine pas. J'ai donc essayé de le faire avec Imagemagick.
Sur Ubuntu, pdftk n’a posé aucun problème pour installer à partir d’apt, et il a parfaitement réussi. J'ai déjà utilisé ImageMagick pour assembler des PDF avec succès, mais comme il pixellise d'abord les PDF (ce qui est compréhensible, cela ne fonctionne pas avec les vecteurs), il semble moins performant pour la plupart des documents texte. Mais pdftk a bien fonctionné - merci pour cette suggestion.
Iguananaut
Super ... merci
Dan Ortega
Passons à celui-ci, pdftk fonctionne beaucoup mieux que ghostcript.
Dan Ortega
18

Si tous les fichiers que vous souhaitez fusionner se trouvent dans le même dossier:

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

l'argument -density 150conserve la qualité des fichiers PDF fusionnés.

juda
la source
5
Une note de côté sur votre syntaxe tout PDF, vous pouvez omettre la commande sub-ls:convert -density 150 *.pdf output.pdf
Josh
'* .pdf' et '$ (ls -rt * pdf)' peuvent générer un résultat différent.
Shantanoo
8

J'oublie toujours comment faire cela et trouve cette question en premier lorsque je cherche.

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

L'exemple lié a une densité de 144 mais n'a jamais été suffisamment élevée pour ne pas apparaître pixelisé.

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

Leslie Pajuelo
la source
Désolé, le lien est mort maintenant.
Sablefoste le
0

Je ne pouvais trouver aucun moyen de joindre deux fichiers pdf ensemble tout en conservant la résolution correcte et le texte intact, mais j'ai trouvé un moyen de le convertir en fichier png haute résolution.

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

Cela prend les deux premières pages de page.pdf et les joint dans un fichier png haute résolution côte à côte.

Changer la dernière ligne en

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

produira un document pdf tel que je le découvrirai plus tard après avoir bousillé pngtopnm, pnmtops, ps2pdf.

Barry Dmytro
la source
2
-1 pour suggérer de pixelliser une image vectorielle (possible). Ce n'est pas la voie à suivre.
Marco