Reemplazar una imagen en un PDF usando la línea de comando

11

Necesito procesar algunos archivos PDF. La tarea consiste en intercambiar un archivo de imagen dado por otro. Mi primer problema es cómo reemplazar una imagen PDF desde la línea de comandos en un proceso por lotes. A continuación, trataré de abordar otros problemas, como cómo identificar cuál es la imagen que necesito reemplazar (porque los archivos PDF pueden tener más de una imagen). Pero primero quiero resolver el primer problema: cómo reemplazar una imagen en un PDF por otra.

He leído sobre poppler-utils y pdftk, pero hasta donde sé, ninguna de estas herramientas permite reemplazar imágenes en PDF.

Ivan
fuente
1
Si encuentra una respuesta, será realmente interesante saberlo. Después de aislar la "página del problema", puede usar ImageMagick para insertar una imagen en otra y luego convertirla nuevamente a pdf: imagemagick.org/Usage/layers También: superuser.com/questions/614784/…
Konstantinos
Gracias @pidosaurus Estaba considerando estas opciones pero tiene un gran problema: implica convertir el PDF (o la página de la firma) en imágenes. Es un problema porque el PDF resultante será mucho más grande y el usuario no podría seleccionar un texto para copiar y pegar, por ejemplo.
Ivan
buscar convertir desde imagemagick, y más aún, las herramientas que ofrecen ooconv desde openoffice (ahora libreoffice, en realidad) proporcionan: una vez contraté a alguien para escribir un convertidor PPT a PDF y estas fueron las herramientas utilizadas.
matemáticas
Ninguna de las herramientas de PDF que conozco es capaz de hacer eso, pero no sería muy difícil escribir una nueva herramienta usando una biblioteca de PDF con esa funcionalidad. Un problema que tendrá que resolver es cómo especificar una imagen en particular en un PDF.
dirkt

Respuestas:

1

OK ... creo que pdflatexes la pieza que falta aquí.

El OP dijo que ha investigado poppler-utilsy pdftk. Déjame agregar a eso pdfimages. Estos, junto con pdflatexson las piezas de una solución.

pdfimages -f 4 -l 20 -j -png target.pdf imageroot

En el código de ejemplo anterior, pdfimages mira las páginas 4 a 20 target.pdfy extrae todas las imágenes en archivos con nombres que comienzan imageroot.

poppler-utilsproporciona pdftotext. Recomiendo la -layoutopción que hace un gran trabajo manteniendo el documento legible por humanos.

pdftotext -layout $1.pdf $1.txt

La objeción del OP a la imagemagicksolución ofrecida por pidosaurus es que una imagen no tiene texto extraíble. Con las utilidades que describí, el OP ahora tendrá todas las imágenes, así como todo el texto extraído, y la -layoutopción conserva los números de página y el contenido . El OP podría identificar la página de texto correcta y colocarla en un .texarchivo que termine con una %includegraphicsdirectiva y haga referencia a la imagen de reemplazo por nombre de archivo. Luego, pdflatexesto y termina con un nuevo .pdf de una sola página para insertar en el resto de su documento pdftk. Si sabía en qué parte del texto de la página original residía la imagen, puede %includegraphics [h]obtener la imagen exactamente en el lugar correcto.

Richard Sonnenfeld
fuente