Cómo eliminar imágenes de un archivo PDF

13

Tengo un documento PDF bastante grande (~ 100 MB) con muchas imágenes (como ilustraciones e imágenes de fondo), y me gustaría tener una copia de ese PDF sin imágenes, pero no puedo encontrar la manera de Haz eso.

No estoy hablando de convertirlo solo a texto, me gustaría mantener los párrafos / tablas / columnas múltiples como están.

Me siento cómodo con la línea de comandos y tengo varias computadoras con diferentes distribuciones que puedo usar.

Ornux
fuente
Como estamos hablando de un documento de 500 páginas con múltiples imágenes en cada página, estoy buscando una forma automatizada de eliminar cada imagen.
Ornux

Respuestas:

14
cpdf -draft original.pdf -o version_without_images.pdf

No está en los repositorios, pero puede encontrar una descarga ( precompilada o fuente ) en su sitio web .


Manual :

15.1 Borradores de documentos

La opción -draft elimina imágenes de mapa de bits (fotográficas) de un archivo, para que pueda imprimirse con menos tinta. Opcionalmente, se puede agregar la opción -boxes, llenando los espacios en blanco con un cuadro cruzado que indica dónde estaba la imagen. No se garantiza que sea completamente visible en todos los casos (el mapa de bits puede haber estado parcialmente cubierto por objetos vectoriales o recortado en el original). Por ejemplo:

 cpdf -draft -boxes in.pdf -o out.pdf
Rinzwind
fuente
1
Eso es exactamente lo que estaba buscando. El archivo de salida es simplemente perfecto. Muchas gracias!
Ornux
@Rinzwind Tenga en cuenta que el enlace "su sitio web" en realidad va a un archivo zip.
Jos
Hmm ... para mí sigue agregando líneas casi al azar sobre y a través del texto, y el tamaño del archivo en realidad crece ligeramente, en lugar de reducirse.
Henning Koehler
22

Las últimas versiones de Ghostscript también pueden hacer esto. Simplemente agregue el parámetro -dFILTERIMAGEa su comando.

Incluso hay dos parámetros nuevos más que se pueden agregar para eliminar selectivamente los tipos de contenido "vector" y "texto" :

  1. -dFILTERIMAGE: produce una salida donde se eliminan todas las imágenes ráster.

  2. -dFILTERTEXT: produce una salida donde se eliminan todos los elementos de texto.

  3. -dFILTERVECTOR: produce una salida donde se eliminan todos los dibujos vectoriales.

Se pueden combinar dos de estas opciones. (Si combina los 3, obtendrá todas las páginas en blanco ...)

Ejemplos

Aquí está la captura de pantalla de una página PDF de ejemplo que contiene los 3 tipos de contenido mencionados anteriormente:

Captura de pantalla de la página PDF original que contiene los elementos "imagen", "vector" y "texto".
Captura de pantalla de la página PDF original que contiene los elementos "imagen", "vector" y "texto".


La ejecución de los siguientes 6 comandos creará las 6 variaciones posibles de los contenidos restantes:

 gs -o noIMG.pdf -sDEVICE = pdfwrite -dFILTERIMAGE input.pdf
 gs -o noTXT.pdf -sDEVICE = pdfwrite -dFILTERTEXT input.pdf
 gs -o noVCT.pdf -sDEVICE = pdfwrite -dFILTERVECTOR input.pdf

 gs -o onlyIMG.pdf -sDEVICE = pdfwrite -dFILTERVECTOR -dFILTERTEXT input.pdf
 gs -o onlyTXT.pdf -sDEVICE = pdfwrite -dFILTERVECTOR -dFILTERIMAGE input.pdf
 gs -o onlyVCT.pdf -sDEVICE = pdfwrite -dFILTERIMAGE -dFILTERTEXT input.pdf

La siguiente imagen ilustra los resultados:


Fila superior, desde la izquierda: se eliminó todo el "texto"; todas las "imágenes" eliminadas; todos los "vectores" eliminados. Fila inferior, desde la izquierda: solo se conserva el "texto"; solo se mantienen "imágenes"; solo se conservan los "vectores".
Fila superior, desde la izquierda: se eliminó todo el "texto";  todas las "imágenes" eliminadas;  todos los "vectores" eliminados.  Fila inferior, desde la izquierda: solo se conserva el "texto";  solo se mantienen "imágenes";  solo se conservan los "vectores".


Kurt Pfeifle
fuente
2

Si bien la respuesta de @Rinzwind es lo correcto , me gustaría comentar la solución "intermedia". Normalmente puede reducir en gran medida el tamaño de las imágenes usando ghostscript con

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen \
   -dNOPAUSE -dQUIET -dBATCH -sOutputFile=small.pdf original.pdf

... a veces es realmente útil para la corrección de pruebas. La página del manual para escribir PDF está aquí .

Rmano
fuente
@KurtPfeifle /screen(entre otras cosas) establecerá la resolución de las imágenes de mapa de bits en 72 ppp . Entonces sí, si tiene imágenes con un DPI más pequeño, puede aumentar el tamaño del archivo. Esta es la razón por la que usé la palabra "normalmente" (en el sentido de "no siempre, pero con bastante frecuencia"). Siéntase libre de votar lo que quiera.
Rmano
Ejecutar este comando: for s in screen default ; do gs -o /dev/null -sDEVICE=pdfwrite -dPDFSETTINGS=/${s} -c "currentpagedevice {exch ==only ( ) print === } forall" | sort | tee ghostscript---pdfwrite-PDFSETTINGS-${s}--pagedevice-settings.txt; done. Producirá dos archivos de texto que puede comparar usando sdiff -sbB $[file1}.txt ${file2}.txt. ¡Ahora conoce exactamente y completamente todas las diferentes configuraciones introducidas por -dPDFSETTINGS=/screen!
Kurt Pfeifle
Hecho. Todavía no puedo ver qué opción puede proporcionar un archivo más grande /screenque en /default--- 72 ppp frente a 150 ppp, optimizado, descartar la vista previa de EPS ... pero bueno, no es un gran problema. La gente probará y elegirá la mejor solución.
Rmano
Lo siento, tal vez tenga que disculparme ahora por lo descarado de mi primera declaración. Para ser sincero, parece que recuerdo de mis investigaciones anteriores (hace unos años) que /screendieron resultados realmente malos. Posiblemente mi memoria falla, o la mezclé con /epub. El comando que le di fue de memoria porque estaba bastante seguro de que mostraría lo que quería decir. Ahora lo volví a ejecutar de nuevo, ya no veo lo que esperaba: pruebas más extendidas que realicé hace algunos años. Luego, muchas fuentes (CID? / CFF?) Obtuvieron tamaños de hinchamiento rasterizados de los PDF resultantes. Debo volver a visitar el tema nuevamente, una vez que tenga más tiempo ... :-)
Kurt Pfeifle
0

Puede usar el editor maestro de pdf, eliminar esas imágenes y guardarlas como un nuevo archivo pdf. Puede descargarlo desde el centro de software de Ubuntu.

De repente
fuente
Lo acabo de instalar para intentarlo, pero no veo una forma automática de hacerlo. Dado que es un documento de 500 páginas, no veo la eliminación manual como una solución aquí. Me he perdido algo ?
Ornux
no, no te perdiste nada, pensé que las imágenes son de gran tamaño, así que quieres eliminarlas, nunca pensé en tantas imágenes. de todos modos buena pregunta.
repente