2012-02-29 10 views
21

Necesita una solución basada en Java o, en el peor de los casos, una línea de comandos para Linux.Cómo reducir la resolución de las imágenes en un archivo PDF?

He intentado utilizar Ghostscript:

gs -sDEVICE=pdfwrite -dPDFA -dBATCH -dNOPAUSE -dUseCIEColor \ 
    -sProcessColorModel=DeviceCMYK -sPDFACompatibilityPolicy=1 \ 
    -sOutputFile=downgraded.pdf leon_range_my12_w22_brochure.pdf 

pero tengo un montón de errores ...

+2

Esos parámetros no reducirán la resolución de las imágenes de todos modos. ¿Qué versión de GS estás usando y has informado de los errores como un error? El modificador -dPDFA necesita información adicional para crear un archivo PDF/A conforme que no haya suministrado. Posiblemente los "errores" en realidad son advertencias ... – KenS

Respuesta

3

Trate moonshiner, una GUI para Ghostscript.

+0

mientras que el moonshiner realmente parecía prometedor durante sus 5 meses de actividad de desarrollo en Sourceforge en 2009, hoy en día parece que es un proyecto muerto. No hay actualizaciones desde mayo de 2009 .... :-( –

+0

parece muy útil para ajustar la cadena de línea de comandos para gs. – macromaniac

+2

@pipitas No he hecho ningún cambio importante al moonshiner principalmente porque, en lo que a mí respecta, es bastante Mucho trabajo. Estoy de acuerdo en que la falta de actividad hace que parezca muerta, pero todavía la uso mucho hasta el día de hoy.Simplemente no he tenido nada que agregar más :) – balpha

31

Aquí hay un ejemplo de cómo se puede reducir la resolución de todas las imágenes (color, gris y mono) a 72 ppp con una línea de comandos de Ghostscript:

gs \ 
    -o downsampled.pdf \ 
    -sDEVICE=pdfwrite \ 
    -dDownsampleColorImages=true \ 
    -dDownsampleGrayImages=true \ 
    -dDownsampleMonoImages=true \ 
    -dColorImageResolution=72 \ 
    -dGrayImageResolution=72 \ 
    -dMonoImageResolution=72 \ 
    -dColorImageDownsampleThreshold=1.0 \ 
    -dGrayImageDownsampleThreshold=1.0 \ 
    -dMonoImageDownsampleThreshold=1.0 \ 
    input.pdf 

Actualización:
Los parámetros *ImageDownsampleThreshold=1.0 cumplir esa all Las imágenes con una resolución superior a la resolución objetivo de 72 ppp se reducirán. Si no se proporciona este parámetro (o se establece en un valor diferente), se usarán los valores predeterminados: *ImageDownsampleThreshold=1.5. Este valor predeterminado solo reducirá la resolución de las imágenes con un valor de 108 ppp (o superior) y dejará las otras intactas.

+0

@codin: Los comentarios no son para debatir un tema completamente nuevo. Haga una nueva pregunta, etiquétela como '[ghostscript]' + '[pdf]' y trataré de responderla lo mejor que pueda. Por favor, también indique cuál es el propósito de su solicitud. ¿Guardar en tamaño de archivo? ¿Eliminar información contenida en las imágenes? ¿O? –

+0

Gracias Kurt, ¡excelente respuesta! Intenté reducir la resolución de la imagen a 36, ​​pero el tamaño del archivo de salida no cambió, aunque el 70% de su tamaño se proporcionó a partir de una imagen en la primera página. ¿Alguna idea de por qué? –

+1

@GuidoWalterPettinari: sin tener acceso al PDF en sí no voy a especular. Tal vez pueda aplicar la siguiente respuesta a su archivo para reducir los elementos que ocupan la mayor parte de sus bytes: http://stackoverflow.com/a/37858893/359307 –

11

Esto es lo que estoy utilizando:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=OUTPUT.pdf INPUT.pdf

Para su referencia:

-dPDFSETTINGS =/pantalla (pantalla de sólo lectura de calidad, 72 imágenes ppp)

- dPDFSETTINGS =/ebook (baja calidad, imágenes de 150 ppp)

-dPDFSETTINGS =/impresora (alta calidad, imágenes de 300 ppp)

-dPDFSETTINGS =/preimpresión (de alta calidad, preservando color, 300 ppp) IMG

-dPDFSETTINGS =/default (casi idéntica a/pantalla)

1

Para un documento digitalizado en el que cada página es un servicio completo imagen en color, he usado una combinación de la línea de comandos anterior y otro que he encontrado en un sitio diferente,

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dDownsampleColorImages=true \ 
-dColorImageResolution=150 -dNOPAUSE -dBATCH -sOutputFile=output.pdf input.pdf 

Cada una de mis páginas era un escaneo en color de un documento. Esta línea de comando redujo la resolución de las páginas a 150 ppp, reduciendo el tamaño del archivo a la mitad sin una pérdida significativa de resolución. Todavía se ve bien y el texto es cómodamente legible en mi Nexus 7.

+0

¿Este comando está utilizando? por favor, publique el comando completo si ha combinado otras combinaciones publicadas anteriormente. Tengo un problema con las imágenes en color pdf que no se está reduciendo correctamente. Gracias –

Cuestiones relacionadas