J'ai un PDF, réalisé avec Inkscape, qui utilise des couleurs transparentes. Cette image doit être utilisée dans un document LaTeX.
Bien que la préservation de la transparence soit agréable pour l'édition, cela peut être un problème pour l'impression. L'impression implique généralement une conversion PDF en PS. Étant donné que Postscript ne prend pas en charge la transparence, cela nécessite soit
- aplatissement, c'est-à-dire création d'un graphique vectoriel qui fonctionne sans transparence
ou
- tramage, c'est-à-dire rendu d'une image bitmap.
Lorsqu'un document PDF contenant une telle figure est imprimé (ou converti en PS) en utilisant Evince (ou Cairo ou Ghostscript), la page entière est rendue sous forme de bitmap, rendant les polices moches (différentes des autres pages). (Adobe Acrobat gère bien ces fichiers PDF.)
Malheureusement, la conversion des figures PDF en EPS (avant de les inclure avec LaTeX) n'aide pas beaucoup, car à la fois pdftops et pdf2ps (encore une fois, Le Caire ou Ghostscript) pixellisent l'image, c'est-à-dire rendent un bitmap (enregistré au format EPS). (C'est un peu mieux, car cela n'affecte pas toute la page, mais je préférerais quand même un graphique vectoriel.)
Comment puis-je aplatir la transparence avec Inkscape ou un autre logiciel sous Linux?
Réponses:
Une façon de contourner une mauvaise pixellisation consiste à convertir manuellement votre document PDF en post-scriptum, car lorsque vous appelez CUPS via evince ou tout autre interface graphique, il sera de toute façon converti.
Vous pouvez essayer
pdftops -r 1200 document.pdf
d'augmenter la résolution à partir de la valeur par défaut basse de 300, puis imprimer le post-script résultant. Cependant, avec les imprimantes à l'œuvre, cela n'a pas entraîné d'amélioration significative. Le texte normal sur les pages avec et sans images transparentes était toujours différent - flou vs clair.J'ai donc fini par utiliser Acrobat Professional (sur une machine Windows) pour aplatir les images transparentes utilisées dans mon document en latex, ce qui a donné des résultats optimaux. Vérifiez que se
Transparency Flattener Preset
trouve[High Resolution]
dans la configuration d'impression avancée. Mon collègue a mentionné que l'on pourrait peut-être transférer un fichier pdf directement sur une imprimante réseau laserjet moderne, sans passer par la conversion postscript. Je n'ai pas essayé ça.Ce serait génial d'avoir une solution Linux uniquement pour ce problème.
la source
J'ai eu le même problème et voici ma solution (pour référence future):
J'ai essayé beaucoup de choses, et jusqu'à présent, la meilleure solution de travail que j'ai trouvée sur Internet était de rendre le PDF complètement sous forme d'image avec
pdf2ps
etps2pdf13
, mais le résultat n'était pas satisfaisant pour moi, car toutes les formes vectorielles ont été perdues. Je voulais rendre uniquement les parties critiques, mais conserver les graphiques vectoriels.L'astuce pour moi a été d'isoler toutes les parties critiques dans Inkscape et de les placer sur un calque séparé (dans mes images, c'était toutes les ombres). J'ai rendu visible uniquement ce calque (et le calque d'arrière-plan) et je l'ai exporté au format PNG, ce qui a rendu tous les effets de transparence, mais seulement eux. Je l'ai réimporté et utilisé dans un nouveau calque. Après avoir inversé toutes les visibilités des calques (calque de transparence: désactivé, tous les autres: activé), le PDF exporté fonctionnait parfaitement avec LaTeX et était imprimable sans rendre la page entière sous forme d'image.
TL; DR:
la source
Une façon consiste à créer une boîte blanche dans Inkscape de la même taille que votre page et à l’envoyer à la couche inférieure. Cela exportera votre image avec un fond blanc au lieu d'une image transparente.
la source
J'ai ouvert le fichier pdf en utilisant Ubuntu / Gimp et j'ai imprimé une page à la fois en vérifiant l'aperçu avant impression à chaque fois.
la source
puis
la source