Cómo combinar pdf: s usando Imagemagick (problema de resolución)

43

Cuando intento fusionar dos archivos .pdf usando Imagemagick

convert pdf1.pdf pdf2.pdf temp.pdf

el archivo temp.pdf resultante parece tener una resolución muy baja. ¿Cómo puedo mantener la resolución igual que en los archivos de origen?


fuente

Respuestas:

53

Barns tiene razón, pero si pdftk no funcionó, intente con ghostscript.

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

fuente
Funcionó perfectamente y también con rapidez, mucho más rápido que usar ImageMagick con el indicador de densidad.
Brionius el
Esta debería ser la respuesta correcta. No es que ImageMagick no funcione; Funciona también. Pero como señaló @Brionius, gs es mucho más rápido y la calidad del pdf resultante es de primera categoría.
Jagtesh Chadha
Tenga en cuenta que puede usar * .pdf en lugar de la lista de pdf1.pdf y pdf2.pdf al final de este comando para convertir todos los pdf de una carpeta en un solo pdf.
Colin D
Tuve algunos problemas con la fuente, algunas páginas pierden su fuente. ¿Hay alguna manera de que pueda elegirlo?
Zloy Smiertniy
20

El comando de conversión de Imagemagick se usa normalmente para convertir archivos de imagen de un formato a otro, y en este caso, es posible que realmente esté realizando una conversión interna antes de enviar las dos "imágenes" (PDF) en un solo archivo.

Sugeriría que considere usar el PDF Toolkit (pdftk) en su lugar http://www.accesspdf.com/pdftk/

De los ejemplos en el sitio web, esto debería ser tan simple como:

pdftk pdf1.pdf pdf2.pdf cat output temp.pdf
Ricardo
fuente
Estoy ejecutando OS X 10.6.1 e intenté instalar pdftk a través de Macports. Parece que pdftk está en desuso en Mac, la instalación no finalizará. Entonces, intenté hacer esto usando Imagemagick.
En Ubuntu, pdftk no fue un problema para instalar desde apt, y funcionó de maravilla. He usado ImageMagick para unir archivos PDF antes con gran éxito, pero debido a que primero rasteriza archivos PDF (es comprensible, no funciona con vectores) no se ve tan bien para la mayoría de los documentos de texto. Pero pdftk funcionó muy bien, gracias por la sugerencia.
Iguananaut
Genial ... gracias
Dan Ortega
Vamos a votar este, pdftk funciona mucho mejor que ghostcript haciendo esto.
Dan Ortega
18

Si cada archivo que desea combinar está en la misma carpeta:

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

El argumento -density 150mantiene la calidad de los archivos PDF combinados.

juda
fuente
55
Una nota al margen sobre su sintaxis completa de PDF, puede omitir el comando sub-ls:convert -density 150 *.pdf output.pdf
Josh
'* .pdf' y '$ (ls -rt * pdf)' pueden dar como resultado una salida diferente.
shantanoo
0

No pude encontrar ninguna forma de unir dos archivos pdf juntos manteniendo la buena resolución y el texto intacto, pero descubrí una forma de convertirlo en un archivo png de alta resolución.

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

Esto lleva a las dos primeras páginas de page.pdf y las une en un archivo png de alta resolución de lado a lado.

Cambiar la última línea a

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

resultará en una salida de documento pdf como luego descubrí después de jugar con pngtopnm, pnmtops, ps2pdf.

Barry Dmytro
fuente
2
-1 por sugerir rasterizar una (posible) imagen vectorial. Ese no es el camino a seguir.
Marco