2009-02-13 13 views
13

He estado golpeando mi cabeza contra esto en vano.¿Usar ImageMagick o Ghostscript (o algo así) para escalar PDF para adaptarlo a la página?

Necesito encoger algunos PDF grandes para imprimirlos en una página de 8.5x11 pulgadas (carta estándar). ¿Puede ImageMagick/Ghostscript manejar este tipo de cosas, o estoy teniendo tantos problemas porque estoy usando la herramienta incorrecta para el trabajo?

El solo hecho de confiar en la opción "reducir a la página" en los cuadros de diálogo de impresión del lado del cliente no es una opción, ya que nos gustaría que sea fácil de usar para los usuarios finales.

Respuesta

7

El problema con el uso de ImageMagick es que está convirtiendo a un formato de imagen de trama, lo que aumenta el tamaño del archivo y la calidad decreciente para cualquier elemento vectorial en sus páginas.

Multivalent conservará la información vectorial del PDF. Probar:

java -cp Multivalent.jar tool.pdf.Impose -dim 1x1 -paper "8.5x11in" myFile.pdf 

para crear un archivo de salida myFile-up.pdf

+0

Oooh, lo intentaré. ¡Gracias! – ceejayoz

+4

¡Resulta que la última versión de este software no incluye las herramientas de pdf! Debe encontrar y usar el archivo Multivalent20060102.jar. –

+1

aquí: http://minus.com/lherwk1Y5TQzZ y aquí: http://ge.tt/6fVll5H puede descargar la última versión de Multivalent ** con herramientas ** – Dingo

8

Los comandos mogrify/convert de ImageMagick realmente harán el trabajo. Stephen Page tuvo la idea correcta, pero también necesita establecer los ppp del archivo o no podrá hacer el trabajo.

Asumiendo que tiene un archivo que es 300 dpi y ya la misma relación de aspecto que 8,5 x 11 el comando sería:

// 300dpi x 8.5 -2550, 300dpi x 11 -3300 
convert original.pdf -density "300" -resize "2550x3300" resized.pdf 

Si la relación de aspecto es diferente, entonces usted tiene que hacer algún recorte ligeramente más complicado .

+0

No funciona para mí. El PDF está dañado después de la conversión (v. 7.0.7-Q16) – Unicco

18

yo no usaría convert. Utiliza Ghostscript en segundo plano, pero es mucho más lento. Usaría Ghostscript directamente, ya que me da un control mucho más directo (y también un poco de control sobre la configuración que es mucho más difícil de lograr con convert). Y para convertir a trabajar para la conversión de PDF a-PDF se le han instalado Ghostscript todos modos:

gs \ 
    -o /path/to/resized.pdf \ 
    -sDEVICE=pdfwrite \ 
    -dPDFFitPage \ 
    -r300x300 \ 
    -g2550x3300 \ 
    /path/to/original.pdf 
6

El enfoque Ghostscript funcionó bien para mí. (Moví mi archivo desde mi PC con Windows a una computadora Linux y lo ejecuté allí). Hice un pequeño cambio en el comando Ghostscript porque el comando de redimensionamiento de Ghostscript arriba completa una página de 8.5 por 11 pulgadas. Sin embargo, mi impresora no puede imprimir al borde, por lo que se perdieron varios milímetros a lo largo de cada borde de la página. Para superar ese problema, amplié mi documento PDF a 0.92 de 8.5 por 11 pulgadas completas. De esa manera, vi todo centrado en la página y tenía un pequeño margen. Como 0.92 * (2550x3300) = (2346x3036), ejecuté el siguiente comando Ghostscript:

gs -sDEVICE=pdfwrite \ 
    -dPDFFitPage \ 
    -r300x300 \ 
    -g2346x3036 \ 
    /home/user/path/original.pdf \ 
    -o /home/user/path/resized.pdf 
Cuestiones relacionadas