Uno de nuestros proveedores comenzó a agregar una imagen innecesariamente grande a la última página de archivos PDF que recibimos de ellos. Necesito recortar esto. Sin embargo, tenemos cientos de estos, por lo que es prohibitivo ingresar manualmente. ¿Cuáles son las mejores formas de extraer y luego eliminar (preferiblemente primero una, luego la otra; todavía necesito confirmar a través del tamaño del archivo que no estoy eliminando una que no tiene la imagen) la última página de un PDF automáticamente? El sistema operativo es Linux.
Puedo extraerlo usando ghostscript, con algo similar, gs -dFirstPage=5 -dLastPage=5
pero necesito automatizar esto, no puedo pasar y averiguar manualmente cuál es el número de la última página.
¿Algunas ideas?
Editar: para aclarar, simplemente quiero dividir / eliminar la última página. No es la imagen que contiene, elimine el último período de la página.
pdftk
, estoy seguro de que se puede hacer que funcione en general para este tipo de tarea.Respuestas:
Como ya comentó @Daniel Andersson, esto se puede hacer fácilmente con
pdftk
:Sin embargo, no sé si se puede hacer con una llamada a pdftk ...
Editar : puede combinarlo con la respuesta y el uso de thanosk (en bash):
cuando ya extrajo la última página a la variable
$last
.fuente
Para mejorar aún más la respuesta de @eldering, pdftk versión 1.45 y posteriores tienen los medios para hacer referencia a las páginas en orden inverso al anteponer la letra minúscula r al número de página. La página final de un PDF es r1, la penúltima página es r2, etc.
Por ejemplo, la única llamada pdftk:
eliminará la página final de input.pdf: la entrada debe tener al menos dos páginas.
Para extraer solo la página final de un PDF para probar su tamaño de archivo, ejecute:
Pdftk está disponible en Linux. Muchas distribuciones tienen un binario que puedes instalar. Sin embargo, debe asegurarse de que sea la versión 1.45 o posterior. Si no, puede compilar pdftk desde el código fuente.
fuente
pdfinfo le dará el tamaño del archivo pdf real, y pdfimages le dará un índice de las imágenes en dicho archivo pdf. Para que pueda escribir un guión en el formulario
eso debería volver si un archivo en particular tiene una imagen en la última página. Si es así, puede hacer cualquier manipulación que necesite hacer.
fuente
Aquí hay una solución usando pdfjam en lugar de pdftk:
Donde el primer argumento es el archivo a recortar y el segundo argumento la cantidad de páginas a recortar (el valor predeterminado es 1).
fuente
Una solución de una línea sería usar
find
junto conpdftk
:NOTA : los archivos recortados se almacenan en este ejemplo en un subdirectorio llamado
cut
para mantener el nombre de archivo original, yapdftk
que no permite sobrescribir archivos de entrada.fuente