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

51

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 la presse écrite 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.)

Devdatta Tengshe
la source
@slhck: Je voulais dire des graphiques vectoriels . J'ai utilisé Inkscape et cela fonctionne comme prévu. Pouvez-vous s'il vous plaît mettre votre commentaire comme une réponse, afin que je puisse le marquer comme accepté?
Devdatta Tengshe

Réponses:

49

Vous pouvez utiliser Inkscape , une application de graphisme vectoriel multiplate-forme et gratuite. 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).

slhck
la source
2
Sous Linux, il requiert X11 - il existe également une version Windows native (que je viens d’utiliser pour extraire un dessin vectoriel à partir d’un fichier PDF).
Mark Leighton Fisher
23

Bien qu'Inkscape soit un moyen formidable de le faire, vous pouvez également extraire des pages individuelles d'un fichier PDF au format SVG pour ceux qui ne possèdent pas X11, à l'aide de poppler-utils sur la 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.

Alternativement, si vous êtes un utilisateur sedassidu de ligne de commande, vous pouvez extraire au format EPS (postscript encapsulé) et utiliser 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 le cadre de sélection de l'image à partir de la ligne de commande à l'aide de la commande Ghostscript eps2eps:

$ 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.

hackerb9
la source
+1 votre ligne de commande supprime tout le texte .. mais savez-vous également comment supprimer toutes les images? Je suis à la recherche d'une solution qui ne laisse que le graphique vectoriel :)
clarkk
Est-ce que ça marche pour toi? cat foo.eps | sed '/^8 dict dup begin$/,/^Q$/ c Q' > nobitmaps.eps
hackerb9
1
mais est-il alors possible de vérifier si le fichier eps a même des graphiques vectoriels? :)
Clark
1
Je suppose que vous pouvez utiliser eps2eps de Ghostscript pour le résumer dans son plus petit rectangle et voir s'il est complètement vide. Mais cela commence à devenir une nouvelle question. N'hésitez pas à demander et je suis sûr que si je ne réponds pas, quelqu'un le fera.
hackerb9
1
@ hackerb9 merci, maintenant le format eps est lisible, mais la densité de l'image est très basse et il reste du texte autour. Le pdf est ici , et l'image est à la page 7
rtrtrt