compress compression pdftk

compression - compress - Opción de compresión pdftk



pdftk command line (9)

Yo uso pdftk para comprimir un pdf usando la siguiente línea de comando

pdftk file1.pdf output file2.pdf compress

Funciona a medida que disminuye el peso de mi archivo.

¿Hay [opciones] para cambiar la compresión?

¿O tal vez otras soluciones para comprimir mi archivo? Es pesado porque algunos gráficos tienen muchos puntos . ¿Hay alguna forma de convertir estos gráficos a jpg por ejemplo y adaptar la compresión?


Después de probar gpdf como sugirió , descubrí que obtuve los mismos resultados de compresión (un archivo ~ 900mb a ~ 30mb) simplemente usando la impresora cups-pdf. Esto podría ser más fácil / preferido si ya está viendo un documento y solo necesita comprimir uno o dos documentos.

En Ubuntu 12.04, puede instalar esto por

sudo apt-get install cups-pdf

Después de la instalación, asegúrese de revisar Herramientas del sistema > Administración > Impresión > haga clic derecho en ''PDF'' y configúrelo como ''habilitar''

Por defecto, la salida se guarda en una carpeta llamada PDF en su directorio de inicio.


En caso de que desee comprimir un PDF que contenga una gran cantidad de texto seleccionable, en Windows puede usar NicePDF Compressor - elija la opción "Flate". Después de probar todo (cpdf, pdftk, gs) finalmente me ayudó a comprimir mis 1360 páginas PDF de 500 MB a 10 MB.


Intento comprimir un PDF que hice con 400ppi tiffs, principalmente de 8 bits, algunos de 24 bits, con compresión PackBits, usando tiff2pdf comprimido con Zip / Deflate. Un problema que tuve con cada uno de estos métodos: ninguno de los métodos anteriores conservaba el TOC de marcadores que creé minuciosamente manualmente en Acrobat Pro X. Ni siquiera la configuración de ebook recomendada para gs . Claro, podría simplemente abrir una copia del original con el TOC intacto y hacer una Replace pages pero desafortunadamente, ninguno de estos métodos hizo un trabajo satisfactorio para empezar. O redujeron tanto el tamaño que la calidad se pixelada inaceptablemente, o no redujeron el tamaño en absoluto y, en un caso, lo aumentaron a pesar de la pérdida de calidad.

pdftk compress :

no change in size bookmarks TOC are gone

gs screen :

takes a ridiculously long time and 100% CPU errors: sfopen: gs_parse_file_name failed. ? | ./base/gsicc_manage.c:1651: gsicc_set_device_profile(): cannot find device profile 74.8MB-->10.2MB hideously pixellated bookmarks TOC are gone

gs printer :

takes a ridiculously long time and 100% CPU no errors 74.8MB-->66.1MB light blue background on pages 1-4 bookmarks TOC are gone

gs ebook :

errors: sfopen: gs_parse_file_name failed. ./base/gsicc_manage.c:1050: gsicc_open_search(): Could not find default_rgb.ic | ./base/gsicc_manage.c:1651: gsicc_set_device_profile(): cannot find device profile 74.8MB-->32.2MB badly pixellated bookmarks TOC are gone

qpdf --linearize :

very fast, a few seconds no size change bookmarks TOC are gone

pdf2ps :

took very long time output_pdf2ps.ps 74.8MB-->331.6MB

ps2pdf :

pretty fast 74.8MB-->79MB very slightly degraded with sl. bluish background bookmarks TOC are gone


No vi una gran reducción en el tamaño del archivo con qpdf. La mejor manera que encontré es después de que pdftk haya terminado, use ghostscript para convertir el pdf a postscript y luego volver al pdf. En PHP usarías exec:

$ps = $save_path.''/psfile.ps''; exec(''ps2ps2 '' . $pdf . '' '' . $ps); unlink($pdf); exec(''ps2pdf '' .$ps . '' '' . $pdf); unlink($ps);

Lo usé hace unos minutos para tomar una salida de pdftk de 490k a 71k.


Si el tamaño del archivo es demasiado grande, podría ayudar a usar ps2pdf para reducir la resolución del archivo pdf producido:

pdf2ps input.pdf tmp.ps ps2pdf -dPDFSETTINGS=/screen -dDownsampleColorImages=true -dColorImageResolution=200 -dColorImageDownsampleType=/Bicubic tmp.ps output.pdf

Ajuste el valor de la opción -dColorImageResolution para lograr un resultado que se ajuste a sus necesidades (el valor describe la resolución de la imagen en los DPI). Si su archivo de entrada está en escala de grises, reemplazar Color por gris o usar ambas opciones en el comando anterior también podría ayudar. Es posible un ajuste adicional cambiando la opción -dPDFSETTINGS a / default o / printer . Para obtener explicaciones sobre todas las opciones posibles, consulte el manual de ps2pdf .


Tuve el mismo problema y encontré dos soluciones diferentes (mira este thread para más detalles). Ambos redujeron drásticamente el tamaño de mi PDF sin comprimir.

  • Pixelado (con pérdida):

    convert input.pdf -compress Zip output.pdf

  • Unpixelated (sin pérdidas, pero puede mostrarse de forma ligeramente diferente):

    gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dBATCH -dQUIET -sOutputFile=output.pdf input.pdf

Editar : Acabo de descubrir otra opción (para compresión sin pérdida), que evita el desagradable comando gs. qpdf es una herramienta ordenada que convierte archivos PDF (compresión / descompresión, cifrado / descifrado) y es mucho más rápido que el comando gs:

qpdf --linearize input.pdf output.pdf


Tuve el mismo problema y utilicé esta función para comprimir páginas individuales, lo que da como resultado que el tamaño del archivo se comprima hasta 1/3 del tamaño original.

for (int i = 1; i <= theDoc.PageCount; i++) { theDoc.PageNumber = i; theDoc.Flatten(); }


este procedimiento funciona bastante bien

pdf2ps large.pdf very_large.ps ps2pdf very_large.ps small.pdf

darle una oportunidad.


pdf2ps large.pdf small.pdf es suficiente, en lugar de en dos pasos

pdf2ps large.pdf very_large.ps ps2pdf very_large.ps small.pdf