web-dev-qa-db-fra.com

Créez PDF à partir d'Inkscape SVG sans détruire les polices et les effets

J'ai un fichier Inkscape SVG avec quelques effets de transparence et différentes couches que je souhaite exporter dans un fichier PDF à distribuer. Lorsque j'utilise "Enregistrer sous ..." ou "Enregistrer une copie ..." et que je sélectionne le format PDF, tous les effets sont tronqués:

Top: expected output. Bottom: actual output

Haut: résultat attendu. En bas: sortie réelle.

Cela ne me dérange pas d’aplanir l’image, de perdre des capacités d’édition et d’autres choses dans le processus, car j’ai toujours le fichier .svg original, mais je ne trouve pas d’option pour le faire. Je préfère éviter d'exporter dans un format tramé, car je veux pouvoir l'utiliser pour imprimer sur du papier de grande taille.

En cherchant des solutions à cela, entre autres choses, j’ai trouvé ce fil, datant de 2006 , dans lequel la réponse la plus récente date de 2012 et se lit comme suit:

6 ans plus tard .. même problème. Inkscape ne peut pas exporter d'opacité au niveau pdf. Si triste.

N'y a-t-il vraiment aucun moyen de faire cela?

8
Tomas Aschan

Vous devez mettre à niveau votre Inkscape vers la version PPA antérieure à 0.49, mes tests ont produit des résultats utilisant le masquage, l'écrêtage et une différence de chemin de référence:

example image showing clip mask and difference in inkscape as a pdf

Pour mettre à niveau votre inkscape, ouvrez un terminal et exécutez les commandes suivantes:

Sudo add-apt-repository ppa:inkscape.dev/trunk
Sudo apt-get update
Sudo apt-get install inkscape-trunk

Cela devrait supprimer la version 0.48 d’inkscape et la remplacer par la version antérieure à 0.49 dont vous avez besoin pour votre fichier pdf.

Ok, voici mes deux cents sur une solution de contournement pour cela.

J'ai essayé la réponse précédente en utilisant rsvg-convert, ce qui a bien fonctionné pour les éléments transparents. Le problème, c’est que j’ai maintenant une image intégrée dans mon SVG qui a été pixellisée avec une résolution très basse. Spécifier un dpi X/Y plus élevé pour rsvg-convert n'a pas changé cela.

Alors j'ai fait ce qui suit, ce qui a résolu le problème:

  1. "Rastérisation" de l'image dans un fichier PDF: rsvg-convert -f pdf -o rasterized.pdf orig.svg
  2. Ouvrez l'image d'origine dans Inkscape: inkscape orig.svg
  3. Ouvrez l'image pixellisée (contenant maintenant des formes transparentes, mais également l'image incorporée pixellisée) dans Inkscape: inkscape rasterized.pdf
  4. Dissociez tous les éléments de ce dernier jusqu'à ce que vous obteniez l'image mal tramée.
  5. Copiez l'image intégrée de 2. dans celle de 4. , remplacer celui mal rasterisé
  6. Enregistrez-le sous PDF via Inkscape normalement.

Résultat: formes transparentes et images haute résolution.

3
J..

Une solution que j'ai trouvée pour résoudre ce bogue évident est la suivante: Dans Inkscape, enregistrez sous le nom: EPS puis epstopdf le fichier. Le résultat est parfait

3
user370171

Vous pouvez également essayer de convertir votre fichier inkscape .svg en .pdf en utilisant rsvg-convert à partir du paquet librsvg2-bin:

rsvg-convert -f pdf -o foo.pdf foo.svg

Cela préservait la transparence dans mon dossier.

3
user168118