Remplacer une image dans un PDF à l'aide de la ligne de commande

11

J'ai besoin de traiter certains fichiers PDF. La tâche consiste à échanger un fichier image donné par un autre. Mon premier problème est de savoir comment remplacer une image PDF à partir de la ligne de commande dans un processus par lots. Ensuite, j'essaierai de résoudre d'autres problèmes, comme la façon d'identifier l'image à remplacer (car les fichiers PDF peuvent contenir plusieurs images). Mais je veux d'abord résoudre le premier problème: comment remplacer une image dans un PDF par une autre.

J'ai lu sur poppler-utils et pdftk mais pour autant que je sache, aucun de ces outils ne permet de remplacer des images en PDF.

Ivan
la source
1
Si vous trouvez une réponse, ce sera vraiment intéressant à savoir. Après avoir isolé la «page de problème», vous pouvez utiliser ImageMagick pour insérer une image dans une autre, puis la reconvertir en pdf: imagemagick.org/Usage/layers Aussi: superuser.com/questions/614784/…
Konstantinos
Merci @pidosaurus J'étais en train de considérer ces options mais cela a un gros problème: cela implique de convertir le PDF (ou la page de signature) en images. C'est un problème car le PDF résultant sera beaucoup plus grand et l'utilisateur ne pourra pas sélectionner un morceau de texte à copier et coller par exemple.
Ivan
conversion de recherche à partir d'imagemagick, et plus encore, les outils fournis par ooconv depuis openoffice (maintenant libreoffice, en fait) - J'ai embauché une fois quelqu'un pour écrire un convertisseur PPT en PDF et ce sont les outils utilisés.
math
Aucun des outils PDF que je connais n'est capable de le faire, mais il ne serait pas très difficile d'écrire un nouvel outil en utilisant une bibliothèque PDF avec cette fonctionnalité. Un problème que vous devrez résoudre est de savoir comment spécifier une image particulière dans un PDF.
dirkt

Réponses:

1

OK ... Je pense que pdflatexc'est la pièce manquante ici.

Le PO a déclaré qu'il avait examiné poppler-utilset pdftk. Permettez-moi d'ajouter à cela pdfimages. Ces éléments, ainsi que pdflatexles éléments d'une solution.

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

Dans l'exemple de code ci-dessus, pdfimages examine les pages 4 à 20 target.pdfet extrait toutes les images dans des fichiers dont le nom commence imageroot.

poppler-utilsfournit pdftotext. Je recommande l' -layoutoption qui fait un excellent travail en gardant le document lisible par l'homme.

pdftotext -layout $1.pdf $1.txt

L'objection du PO à la imagemagicksolution proposée par pidosaurus est qu'une image n'a pas de texte extractible. Avec les utilitaires que j'ai décrits, l'OP aura désormais toutes les images ainsi que tout le texte extrait, et les numéros de page et le contenu sont conservés par l' -layoutoption. L'OP pourrait identifier la bonne page de texte et la placer dans un .texfichier qui se termine par une %includegraphicsdirective et fait référence à l'image de remplacement par nom de fichier. Vous avez ensuite pdflatexcela et vous vous retrouvez avec un nouveau .pdf d'une seule page à insérer dans le reste de votre document pdftk. Si vous saviez où dans le texte de la page d'origine l'image résidait, vous pouvez %includegraphics [h]et obtenir l'image exactement au bon endroit.

Richard Sonnenfeld
la source