GNU/Linux >> Tutoriales Linux >  >> Linux

Redimensionar y comprimir archivos PDF por lotes

Entonces convert de ImageMagick producirá PDF rasterizados y muchas personas estarían interesadas en mantener intactos los gráficos vectoriales y el texto para que solo se compriman las imágenes incrustadas. Una buena alternativa para hacer la compresión es usar gs del paquete ghostscript ejemplo de uso:

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

en el parámetro de comando anterior:-dPDFSETTINGS=/ebook es importante. Puede tener 3 valores:

-dPDFSETTINGS=/screen   (screen-view-only quality, 72 dpi images)
-dPDFSETTINGS=/ebook    (low quality, 150 dpi images)
-dPDFSETTINGS=/printer  (high quality, 300 dpi images)
-dPDFSETTINGS=/prepress (high quality, color preserving, 300 dpi imgs)
-dPDFSETTINGS=/default  (almost identical to /screen)

Aquí sugiero una herramienta de línea de comandos, que se puede agrupar fácilmente con bucles en lenguajes de secuencias de comandos integrados en Windows, Linux, OS X, etc.

ImageMagick admite archivos PDF y tiene un resize opción con su herramienta de conversión. Nunca lo he usado personalmente, pero puedes intentar jugar con eso.

También puedes usar el compress opción (hay un ejemplo aquí):

Rotar un PDF

$ convert -rotate 270 -density 300x300 -compress lzw in.pdf out.pdf

Esto supone un PDF respaldado por TIFF. El parámetro de densidad es importante porque, de lo contrario, ImageMagick reduce la muestra de la imagen (por alguna razón). Agregar la opción de compresión ayuda a mantener el tamaño general del PDF más pequeño, sin pérdida de calidad.

Para archivos PDF de varias páginas, es posible que desee utilizar pdftk , luego usa mogrify de ImageMagick para convertir cada página en su lugar:

$ pdftk in.pdf burst
$ mogrify -rotate 270 -density 300x300 -compress lzw pg_*.pdf
$ pdftk pg*.pdf cat output out.pdf
$ rm pg*.pdf

Para convertir archivos PDF con ImageMagick, debe tener instalado GhostScript.

ImageMagick puede convertir archivos PDF de varias páginas. mientras que mogrify se convertirá en su lugar, te recomiendo que uses convert para que puedas conservar los originales en caso de accidente.

He hecho algunas pruebas en el PDF de muestra proporcionado. Esto funcionó bastante bien para mí:

convert -density 200 -compress jpeg -quality 20 test.pdf test2.pdf

La densidad predeterminada es 72 PPP. Configurándolo más alto podemos obtener una resolución más alta y, por lo tanto, una calidad aceptable. Se veía bien en 150 , y era un poco más pequeño, pero si desea atender una variedad de archivos PDF 200 debería funcionar.

La compresión JPEG debe elegir automáticamente un nivel o el valor predeterminado es 92 en una escala de 1 a 100 con 100 ser el mejor. Configurándolo en 20 , se ve casi tan bien como el original (un poco más borroso y el texto pequeño en la parte inferior es un poco difícil de leer, pero de todos modos era original).

Estas opciones aportan su 1,7 MB muestra hasta 0,5 MB , manteniéndolo legible. Puedes experimentar un poco.

Si quieres un tamaño más pequeño (tanto del archivo como de la imagen/PDF), puedes usar -resize #% , p.ej. -resize 75% . Sin embargo, en su PDF de ejemplo, esto hace que la letra pequeña en la parte inferior sea prácticamente ilegible.

Si todavía tiene poco espacio, especialmente para los PDF de varias páginas, puede comprimir más agregando los archivos a un archivo ZIP (u otro). Esto redujo el tamaño del archivo a 0,43 MB en ese PDF de prueba (reducir la calidad de compresión JPEG tiene un efecto mucho más drástico). También puede dividir el archivo PDF en páginas con pdftk , como sugirió @glallen en su edición, o dividir el archivo y recombinarlo en el otro extremo.

2 MB también es un límite de archivos adjuntos bastante pequeño, es posible que desee buscar otros proveedores de correo electrónico. Desde la memoria, GMail proporciona más de 10 MB por correo electrónico.

Estas opciones, y más, están completamente documentadas en su sitio web.


Linux
  1. Comando Tar en Linux (comprimir y descomprimir archivos)

  2. Cómo archivar y comprimir archivos en Linux

  3. ¿Cambiar el nombre de los archivos en el directorio?

  4. Comprimir archivos PDF en Linux con Densify

  5. Combinar/convertir múltiples archivos PDF en un solo PDF

Cómo convertir por lotes archivos PDF en Linux

Cómo convertir archivos PDF a formato EPUB usando Calibre en Linux

Cómo convertir PDF a imágenes PNG y viceversa en Linux

Comando tar de Linux para comprimir y extraer archivos

Comprima, cifre, divida y transporte archivos grandes de forma segura

Cómo instalar y usar Pigz para comprimir archivos más rápido en Linux