2017-05-19 11 views
1

J'ai un fichier SVG d'un graphique à barres que j'ai besoin de convertir en PDF. Le graphique à barres a été créé dans matplotlib, enregistré en format PDF et importé dans Inkscape. J'ai utilisé Inkscape pour ajouter des annotations à la figure, puis l'exporter vers un fichier PDF à utiliser dans un document final.Artefacts de dégradé blancs restants après la conversion d'un fichier SVG en PDF

C'est ce que le fichier PDF ressemble à entrer dans Inkscape

enter image description here

Après avoir ajouté du texte ailleurs sur la figure et l'enregistrement au format PDF, je reçois la même parcelle avec ces lignes blanches:

enter image description here

Ce ne sont pas des artefacts de rendu PDF typiques, mais une inspection plus approfondie montre qu'ils ont un dégradé.

enter image description here

Je pense que cela est en quelque sorte un produit du fichier SVG. J'ai utilisé un convertisseur SVG-en-PDF en ligne et les lignes sont toujours présentes. De plus, j'utilise cette méthode pour rendre toute ma figure, Matplotlib à Inkscape en PDF et je n'ai pas eu ce problème avec d'autres figures.

+1

Pouvez-vous fournir un fichier d'exemple minimum (PDF original et SVG)? – Juancho

Répondre

1

J'ai constaté qu'Inkscape le fait lorsque vous importez un graphique à barres dont le type d'ombrage n'est pas le même que celui des modèles Inkscape prédéfinis. J'ai vu ce problème lorsque j'ai importé des graphes du langage de programmation R et que je ne pense pas que ce soit spécifique à Matplotlib. Je ne connais pas la cause première, cependant, étant donné que je rencontre souvent ce problème, je vais partager les options de contournement que j'utilise généralement lorsque j'ai ce problème. L'un n'est pas nécessairement meilleur qu'un autre et cela dépend de la situation que j'utilise.

Option 1) Convertissez le PDF en image bitmap .png dans un autre programme (Gimp, Photoshop, Powerpoint ....) puis incorporez l'image dans Inkscape. Faites vos changements puis exportez depuis Inkscape en PDF. Ceci a l'inconvénient que le graphique ne sera plus une carte vectorielle. Utilisez l'option 2 ou 3 pour garder une carte vectorielle.

Option 2) Importez le pdf dans Inkscape, dégroupez l'objet pdf, supprimez le remplissage dénudé dans le graphique à barres, puis recréer le remplissage à l'aide d'un remplissage créé par Inkscape. Dans le pire des cas, j'ai créé des modèles de graphique à barres personnalisés dans Inkscape pour correspondre exactement au modèle que j'avais auparavant. Ce processus est une douleur.

Option 3) Créez des formes recouvrant les artefacts, enlevez les lignes de bordure des formes et utilisez le compte-gouttes pour les rendre exactement de la même couleur que les bonnes pièces. Comme je l'ai dit, ce n'est pas une compréhension académique du problème pour éviter le problème, mais j'espère que cela peut vous aider à accomplir votre tâche.

+0

Merci, je pense que je peux utiliser l'option 1. Je peux radicalement sur construire mon. Png en python et ensuite l'exporter en pdf pour au moins sauver une partie de la vectorisation. Je vais devoir voir ce que cela fait à mes tailles de fichiers mais c'est peut-être la meilleure option. Je sauvegardais le fichier Inkscape en .png, ça marche bien mais je perds toute ma vectorisation. –