Comment convertir un fichier SVG (contenant quelques mots de texte latin et quelques graphiques vectoriels simples) en PDF sous Linux?
J'ai essayé Inkscape 0.47 sur Ubuntu Lucid, mais cela déplace certains sous-graphiques de manière aléatoire et rend certaines lignes plus courtes dans le fichier PDF de sortie. La sortie est donc inutile, car les graphismes sont complètement différents.
J'ai essayé d'ouvrir SVG dans Google Chrome 16 et de l'imprimer au format PDF, mais il déforme toutes les couleurs et élimine également certains éléments. (Le format SVG apparaît bien à l'écran, mais il est déjà incorrect dans l'aperçu avant impression et le fichier PDF généré l'est également.)
Je ne veux pas rasteriser ou rendre le SVG. Une solution qui convertit le SVG en image bitmap puis crée un PDF avec l’image incorporée ne répond pas à ma question. (Pour votre information, Inscape 0.47 rend le texte très mal, sans antialiasing, lors du rendu au format PNG.)
Quelles autres options ai-je?
la source
Réponses:
rsvg-convert a fait l'affaire pour le SVG que je voulais convertir:
rsvg-convert -f pdf
ne pixellise pas le SVG, et il incorpore et sous-définit les polices (du moins, il a incorporé les caractères utilisés de la police Arial). Parfois, l'incorporation de la police échoue (par exemple, pour la police LMRoman17) et le fichier de police entier est copié dans le fichier PDF généré.Dépendances sur Ubuntu Lucid:
Par défaut, libcairo a besoin de libX11, ce qui rend l’installation de rsvg-convert difficile à installer sur un système sans tête.
Remarque: La page de manuel
rsvg-convert
indique que l'outil est toujours pixellisé, mais ce n'est pas vrai. Le manuel est simplement obsolète. Parfois, votre outil de génération de svg peut pixelliser partiellement l'image svg, ce qui peut également vous induire en erreur.la source
rsvg-convert
est appelérsvg-view
.Cela fonctionne sur Ubuntu Lucid:
L'invocation Inkscape ci-dessus en ligne de commande fonctionne même en mode sans interface graphique, sans interface graphique (
DISPLAY=
). Toutefois, l’installation d’Inscape installe de nombreuses dépendances, notamment X11.Veuillez noter que le statut de sortie d'Inskscape est toujours égal à 0, même en cas d'erreur. Veillez donc à conserver son statut.
Il existe également
inkscape --shell
, adapté à la conversion de nombreux documents dans un lot. Cela évite la lenteur du démarrage d'Inkscape pour chaque fichier:Inkscape est également utile pour simplifier un fichier SVG:
la source
brew install inkscape
ces jours. Le résultat a/usr/local/bin/inkscape
fonctionné pour moi sans avoir à exécuter X11.app.dmg
distribuée de son propre site Web, puis appelé à partir de la ligne de commande après la création de deux liens symboliques:ln -s ~/Applications/Inkscape.app/Contents/Resources/bin/inkscape ~/bin/inkscape
et de même pourinkscape-bin
(en supposant que ce~/bin
soit dans votre$PATH
).-z
(ou--without-gui
) avec Inkscape pour l'exécuter en mode de traitement par lots uniquement (aucune fenêtre ne s'ouvre du tout).J'ai utilisé CairoSVG avec succès sur OSX et Ubuntu.
Documentation CairoSVG
la source
Les résultats d'Inkscape (0,47 également) en PDF et de l'enregistrement au format PDF (mais légèrement différent) donnent de bons résultats, mais cela peut dépendre du graphique à portée de main.
Une alternative avec une résolution plus basse (je n’ai essayé d’aucune option pour l’améliorer) est
convert
fait partie duImageMagick
paquet. Rasterizer est un autre programme:Pour savoir quels programmes qui gèrent svgs sont installés sur votre système, essayez simplement
La page de manuel de ces programmes devrait expliquer si ce programme est utile pour convertir le svg en pdf.
la source
convert
n’est pas une réponse à la question initiale, parce queconvert
le SVG pixellisé en une image bitmap, et la question initiale cherchait une solution qui ne le fasse pas.https://superuser.com/a/79064/19956 mentionne gsvg , composant de GhostPDL.
J'ai essayé gsvg ghostpdl-9.06 sur Ubuntu Lucid, mais cela a échoué pour deux fichiers SVG générés par Inkscape. Un fichier SVG contenait du texte, l’autre ne contenait que des graphiques vectoriels. Il a également échoué pour les graphiques simples sans extensions Inkscape ni chemin de clip. Donc, je ne considère pas que gsvg soit un convertisseur SVG en PDF utilisable.
la source
Sur Mac OS (étant donné que vous avez déjà installé la bière), je fais:
Même chose devrait fonctionner sous Linux, mais avec apt-get à la place.
la source
svg2pdf
etrsvg-convert
, cela préserve les polices.Je me demande pourquoi cela n'a pas été mentionné auparavant, mais j'ai testé plusieurs convertisseurs svg-> pdf et constaté que le meilleur d'entre eux est Headless Chrome . Il produit les résultats les plus précis pour moi. Avant de passer à Chrome, j'essayais de lutter contre les bogues Inkscape, mais beaucoup d'entre eux sont trop sérieux et je ne peux pas y faire grand chose (bugs de transparence, polices incorrectes, etc.).
Il faut quelques ajustements pour utiliser la taille PDF personnalisée (A4 par défaut), mais j’ai été capable de définir la taille personnalisée après avoir googlé et joué avec les attributs CSS et SVG (consultez cette réponse sur stackoverflow )
la source
chromium --no-sandbox --disable-setuid-sandbox --headless --disable-gpu --print-to-pdf=output.pdf input.svg
Ouvrez le fichier svg avec
Image Viewer
(également appelé Eye of Gnomeeog
), imprimez-le au format PDF (par exempleimage.pdf
) et convertissez-le au format EPS en utilisant lapdf2ps
commande. Facile!Étapes élaborées:
Installer
Image Viewer
si ce n'est déjà fait (étape très peu probable si vous utilisezgnome
)Ouvrez le fichier svg avec
eog
et imprimez-le dans unimage.pdf
fichier.(Facultatif) Supprimez les espaces blancs environnants du fichier pdf:
Cela générera
image-crop.pdf
avec les espaces blancs supprimés.Convertir un fichier PDF découpé en eps (à utiliser
image.pdf
directement si vous n'avez pas découpé le fichier PDF)C'est ça!
la source