109 votes

Convertir un PDF en SVG propre ?

J'essaie de convertir un PDF en SVG. Cependant, celui que j'utilise actuellement trace un chemin pour chaque lettre de chaque morceau de texte, ce qui signifie que si je modifie le texte dans le fichier source, le résultat est affreux.

Je me demandais quel était le convertisseur PDF vers SVG le plus propre, en espérant qu'il n'y ait pas de chemin pour les zones de texte qui n'en ont simplement pas besoin. Comme nous le savons, PDF et SVG sont assez similaires, donc je suppose qu'il existe de bons convertisseurs.

83voto

Inkscape est utilisé par de nombreuses personnes sur Wikipedia pour convertir des PDF en SVG.

http://inkscape.org/

Ils ont même un guide pratique sur la façon de le faire !

http://en.wikipedia.org/wiki/Wikipedia:Graphic_Lab/Resources/PDF_conversion_to_SVG#Conversion_with_Inkscape

81voto

Kurt Pfeifle Points 24491

Vous pouvez utiliser Inkscape uniquement en ligne de commande, sans ouvrir d'interface graphique. Essayez ceci :

inkscape \
  --without-gui \
  --file=input.pdf \
  --export-plain-svg=output.svg 

Pour une liste complète de toutes les options de la ligne de commande, exécutez inkscape --help .

21voto

peter.murray.rust Points 13406

J'utilise actuellement PDFBox qui offre un bon support pour la sortie graphique. Il existe un bon support pour l'extraction des traits vectoriels et pour la gestion des polices. Il existe quelques bons outils pour l'essayer (par exemple, PDFReader s'affichera comme Java Graphics2D). Vous pouvez intercepter l'outil graphique avec un outil SVG comme Batik (je fais cela et cela donne une bonne capture).

Il n'existe pas de méthode simple pour convertir tous les PDF en SVG - cela dépend de la stratégie et des outils utilisés pour créer les PDF. Certains textes sont convertis en vecteurs et ne peuvent pas être facilement reconstruits - vous devez installer des polices vectorielles et les rechercher.

MISE À JOUR : J'ai maintenant développé ceci en un paquet PDF2SVG qui n'utilise plus de Batik :

qui a été testé sur une série de PDF. Il produit une sortie SVG composée de

  • personnages comme un seul <svg:text> par caractère
  • comme <svg:path>
  • images comme <svg:image>

Des paquets ultérieurs convertiront (on l'espère) les caractères en texte courant et les chemins en objets graphiques de plus haut niveau.

MISE À JOUR : Nous pouvons maintenant recréer le texte courant à partir des caractères SVG. Nous avons également converti les diagrammes en XML spécifique au domaine (par exemple, les spectres chimiques). Voir https://bitbucket.org/petermr/svg2xml-dev . Il est encore en phase alpha, mais il avance à une vitesse utile. Tout le monde peut participer !

7voto

dhaumann Points 171

Si le passage de DVI à SVG est une option, vous pouvez également utiliser dvisvgm pour convertir un fichier DVI en un fichier SVG. Cela fonctionne parfaitement par exemple pour les formules LaTeX (avec l'option --no-fonts ) :

dvisvgm --no-fonts input.dvi output.svg

Il existe également pdf2svg qui utilise poppler et Cairo pour convertir un pdf en SVG. Lorsque j'ai essayé cela, le SVG était parfaitement rendu dans InkScape.

1voto

user877329 Points 986

J'ai trouvé que xfig faisait un excellent travail :

pstoedit -f fig foo.pdf foo.fig xfig foo.fig

exporter en svg

Il a fait un bien meilleur travail qu'inkscape. En fait, c'est probablement pdtoedit qui l'a fait.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X