web-dev-qa-db-fra.com

Comment extraire des vecteurs à partir d'un fichier PDF?

J'ai un fichier PDF avec des images vectorielles à l'intérieur. (Je l'ai téléchargé sur Internet, je n'ai donc pas d'originaux.)

Je souhaite extraire les vecteurs afin de pouvoir les superposer à d’autres images; utilisez-les dans les médias imprimés ou sur un site Web.

Comment extraire les vecteurs spécifiques du fichier PDF?

Existe-t-il un logiciel capable d'extraire les vecteurs d'un fichier PDF? (De préférence gratuit.)

49
Devdatta Tengshe

Vous pouvez utiliser Inkscape , une application de graphisme vectoriel libre, à code source ouvert et multiplate-forme. Cela vous permettra d'importer les fichiers PDF et de sélectionner les vecteurs incorporés. Vous pouvez ensuite les éditer et les traiter à votre guise.

Une documentation détaillée est disponible sur le site Web d'Inkscape.

Notez que sous Linux, il nécessite X11. Il existe également une version Windows native.

Sinon, vous pouvez essayer Adobe Illustrator (logiciel payant).

47
slhck

Bien qu'Inkscape soit un moyen formidable de le faire, vous pouvez également extraire les pages individuelles d'un PDF au format SVG pour les personnes dépourvues de X11 au format SVG à l'aide de poppler-utils en ligne de commande. Par exemple, pour extraire simplement la page 30:

$ pdftocairo -f 30 -l 30 -svg  somehugemanual.pdf  myextractedpage.svg

Vous pouvez ensuite utiliser votre éditeur de vecteur préféré (le mien est Inkscape) pour isoler l’image du texte.

Si vous êtes un utilisateur assidu de la ligne de commande, vous pouvez également extraire au format EPS (postscript encapsulé) et utiliser sed pour masquer tout le texte (qui se trouve être entre les lignes BT et ET pour pdftocairo). Voici comment:

$ pdftocairo -f 30 -l 30 -eps  manual.pdf  - | sed '/^BT$/,/^ET$/ d' > myimage.eps

Et, si vous êtes vraiment fou pour éviter d'utiliser X11, vous pouvez même réduire la boîte de sélection de l'image à partir de la ligne de commande à l'aide de la commande eps2eps de Ghostscript:

$ eps2eps myimage.eps myimage-bb.eps

J'ai testé cela et cela fonctionne très bien. Cependant, personnellement, j’ai plus de facilité à utiliser simplement Inkscape.

21
hackerb9