Come unire pdf: s usando Imagemagick (problema di risoluzione)


43

Quando provo a unire due file .pdf usando Imagemagick

convert pdf1.pdf pdf2.pdf temp.pdf

il file temp.pdf risultante sembra avere una risoluzione molto bassa. Come posso mantenere la risoluzione uguale ai file di origine?

Risposte:


53

Barns ha ragione, ma se pdftk non ha funzionato prova con ghostscript.

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

Ha funzionato perfettamente e anche rapidamente - molto più velocemente rispetto all'utilizzo di ImageMagick con il flag -density.
Brionius,

Questa dovrebbe essere la risposta corretta. Non che ImageMagick non funzioni; funziona anche. Ma come ha notato @Brionius, gs è molto più veloce e la qualità del pdf risultante è di prim'ordine.
Jagtesh Chadha,

Si noti che è possibile utilizzare * .pdf anziché l'elenco di pdf1.pdf e pdf2.pdf alla fine di questo comando per convertire tutti i pdf in una cartella in un singolo pdf.
Colin D,

Ho avuto dei problemi con il carattere, alcune pagine perdono il carattere. C'è un modo in cui posso sceglierlo?
Zloy Smiertniy,

20

Il comando di conversione di Imagemagick viene normalmente utilizzato per convertire i file di immagine da un formato all'altro, e in questo caso è possibile che stia effettivamente eseguendo una sorta di conversione interna prima di emettere le due "immagini" (PDF) in un singolo file.

Suggerirei di prendere in considerazione l'utilizzo del PDF Toolkit (pdftk) invece http://www.accesspdf.com/pdftk/

Dagli esempi sul sito Web, questo dovrebbe essere semplice come:

pdftk pdf1.pdf pdf2.pdf cat output temp.pdf

Sono in esecuzione su OS X 10.6.1 e ho provato a installare pdftk tramite Macports. Sembra che pdftk sia deprecato su Mac, l'installazione non finirà. Quindi, ho provato a farlo usando Imagemagick.

Su Ubuntu pdftk non è stato un problema da installare da apt, e ha fatto il trucco in modo glorioso. Ho usato ImageMagick per ricucire i PDF in precedenza con grande successo, ma poiché prima rasterizza i PDF (comprensibilmente - non funziona con i vettori) non sembra così buono per la maggior parte dei documenti di testo. Ma pdftk ha funzionato alla grande - grazie per il suggerimento.
Iguananaut

Fantastico ... grazie
Dan Ortega l'

Votiamo questo, pdftk funziona molto meglio di ghostcript.
Dan Ortega,

18

Se tutti i file che desideri unire si trovano nella stessa cartella:

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

l'argomento -density 150mantiene la qualità dei PDF uniti.


5
Una nota a margine sulla sintassi di tutti i PDF, è possibile omettere il comando sub-ls:convert -density 150 *.pdf output.pdf
Josh

'* .pdf' e '$ (ls -rt * pdf)' possono generare output diversi.
shantanoo,



0

Non sono riuscito a trovare un modo per unire due file pdf mantenendo intatta la risoluzione e il testo, ma ho trovato un modo per convertirlo in un file png ad alta risoluzione.

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

Questo porta alle prime due pagine di page.pdf e le unisce in un file png ad alta risoluzione affiancato.

Modifica dell'ultima riga in

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

risulterà in un documento in formato PDF come ho scoperto in seguito dopo aver fatto casino con pngtopnm, pnmtops, ps2pdf.


2
-1 per aver suggerito di rasterizzare un'immagine (possibile) vettoriale. Non è questa la strada da percorrere.
Marco,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.