Util de línea de comandos para cambiar el tamaño de archivos PDF por lotes

¿Hay alguna herramienta para redimensionar por lotes (cambiar ppp, por ejemplo, de 600 ppp a 300 ppp) archivos PDF de gran cantidad (más de 100 000)? Preferiblemente para la línea de comandos de Windows.

No tengo presupuesto, por lo que la herramienta debe venir gratis.

Respuestas (4)

Probablemente puedas usar imagemagick para cambiar tu PDF .

Combinado con un bucle for simple (o algo más avanzado como paralelo ), puede preparar algo como esto:

for %f in (originals\*) do convert %f -density 300 resized\%f

Tenga en cuenta que si coloca eso en un archivo por lotes, debe escapar de los signos de porcentaje.

Puede usar PDFTK-Server y usar el siguiente comando para comprimir los archivos que necesita.

convert input.pdf -compress Zip output.pdf

Aquí puede encontrar el manual completo https://www.pdflabs.com/docs/pdftk-man-page/

Te puedo sugerir dos formas de hacerlo...

  1. ( uno más simple PERO no viable cuando tiene muchos archivos PDF ) use herramientas en línea para hacer eso; por ejemplo: http://www.ilovepdf.com/compress_pdf o https://www.pdfcompress.com/ (solo un par de enlaces, puede buscar en Google "compresor de pdf en línea" y encontrará muchos)

  2. usar guión fantasma ; este es el camino que tendrá que seguir cuando tenga que lidiar con muchos archivos PDF . Como ya lo mencionó Frederick Nord en su respuesta, debe colocarlo en un ciclo for dentro de su archivo por lotes (usando ghostscript en lugar de imagemagick en este caso), así que aquí hay un comando de ejemplo:

    for %f in (originals\*) do gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=resized\%f %f
    

Aquí hay un enlace de referencia para el comando gs que puede resultarle interesante y aquí está la documentación oficial .

Finalmente, seguramente apreciará incluso las excelentes respuestas de Kurt Pfeifle en StackOverflow y aquí en SoftwareRecs .

PS Irfanview también puede hacer uso de ghostscript (ver aquí ), por lo que es posible que desee intentar manipular el archivo por lotes de forma gráfica (algunos ejemplos de uso aquí y aquí ).

Para complementar la respuesta de danicotra , con respecto a la primera solución, Ilovepdf, puedo decirle ahora mismo que puede usar una API fácil de programar para procesar sus archivos PDF en lotes.

API de Ilovepdf

Descargo de responsabilidad: soy el desarrollador principal del repositorio Ilovepdf de Ruby.

PD: insertaría un comentario directamente en el mensaje de danicotra , pero mi reputación de Stackoverflow no es suficiente para realizar tal acción.