« Conversions de formats d'images » : différence entre les versions
(ajout ODS et SVG/PDF) |
|||
(3 versions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[Catégorie:Informatique]] | [[Catégorie:Informatique]] | ||
Sur cette page je synthétise les astuces que j'ai trouvées pour parvenir à exporter dans les formats que je veux à partir d'un logiciel donné. J'ai une nette préférence pour les formats vectoriels, surtout quand il s'agit de produire des documents, c'est pourquoi je passe parfois par des techniques détournées pour parvenir à mes fins plutôt que d'utiliser un export bitmap qui fonctionne bien dans l'immense majorité des applications. | Sur cette page je synthétise les astuces que j'ai trouvées pour parvenir à exporter dans les formats que je veux à partir d'un logiciel donné. J'ai une nette préférence pour les formats vectoriels, surtout quand il s'agit de produire des documents, c'est pourquoi je passe parfois par des techniques détournées pour parvenir à mes fins plutôt que d'utiliser un export bitmap qui fonctionne bien dans l'immense majorité des applications. | ||
Ligne 9 : | Ligne 8 : | ||
Dans un Makefile, ça donne : | Dans un Makefile, ça donne : | ||
%.pdf : %.eps | %.pdf: %.eps | ||
epstopdf $< | epstopdf $< | ||
Ligne 19 : | Ligne 18 : | ||
Dans un Makefile, ça donne : | Dans un Makefile, ça donne : | ||
%.eps : %.pdf | %.eps: %.pdf | ||
pdftops $< \ | pdftops $< \ | ||
&& ps2eps $(<:.pdf=.ps) | && ps2eps $(<:.pdf=.ps) | ||
== Dia vers PDF == | == SVG vers PDF et inversement == | ||
Inkscape fonctionne très bien pour convertir des images SVG en PDF, y compris en ligne de commande : | |||
inkscape -A image.pdf image.svg | |||
Et inversement, pour convertir une image PDF en SVG : | |||
inkscape -l image.svg image.pdf | |||
Voir [[#Inkscape|''infra'']] pour plus de détails sur les différentes versions d'Inkscape. | |||
Dans un Makefile, on pourra écrire ceci ({{code|--export-pdf}} et {{code|--export-plain-svg}} sont les options longues pour {{code|-A}} et {{code|-l}}, respectivement) : | |||
%.pdf: %.svg | |||
inkscape --export-pdf=$@ $< | |||
%.svg: %.pdf | |||
inkscape --export-plain-svg=$@ $< | |||
== Dia vers EPS et PDF == | |||
L'export PDF de dia (version 0.97) fait n'importe quoi. Il faut donc passer par l'export EPS utilisant les polices Pango (avec les polices Latin1 c'est laid) : | L'export PDF de dia (version 0.97) fait n'importe quoi. Il faut donc passer par l'export EPS utilisant les polices Pango (avec les polices Latin1 c'est laid) : | ||
* Fichier -> Exporter. En face de « Déterminer le type du fichier », choisir « PostScript encapsulé (EPS) utilisant les polices Pango (*.eps) » | |||
* Ou en ligne de commandes : | |||
dia -e image.eps image.dia | |||
Consultez la page de manuel pour connaître les options d'export (notamment la sélection des calques). | |||
Une fois le fichier EPS exporté, utiliser la commande epstopdf pour la convertir en PDF comme vu [[#EPS vers PDF|plus haut]]. | |||
Dans un Makefile, on peut écrire ceci ({{code|--export}} est la version longue de l'option {{code|-e}}) : | |||
%.pdf: %.dia | |||
dia --export=$@ $< \ | |||
&& epstopdf $(<:.dia=.eps) | |||
== Dia vers Inkscape == | == Dia vers SVG (Inkscape) == | ||
=== Côté Inkscape === | === Côté Inkscape === | ||
Inkscape (version 0.46, peut-être avant) sait ouvrir les fichiers *.dia. Le résultat est généralement satisfaisant, mais j'ai rencontré des soucis avec certains textes, qui perdaient leur apparence et avaient un comportement étrange quand je tentais modification (un texte multi-lignes dans Dia reste un seul bloc de texte dans Inkscape, mais les lignes se « fondent » lorsqu'on supprime les retours chariot… très étrange). Le plus simple est alors de copier le contenu du bloc de texte (sélectionner le bloc, puis Ctrl-x) et de créer un nouvel objet texte (cliquer n'importe où avec l'outil texte) et de coller le texte dedans (Ctrl-v) ; attention, les retours chariots | Inkscape (version 0.46, peut-être avant) sait ouvrir les fichiers *.dia. Le résultat est généralement satisfaisant, mais j'ai rencontré des soucis avec certains textes, qui perdaient leur apparence et avaient un comportement étrange quand je tentais une modification (un texte multi-lignes dans Dia reste un seul bloc de texte dans Inkscape, mais les lignes se « fondent » lorsqu'on supprime les retours chariot… très étrange). Le plus simple est alors de copier le contenu du bloc de texte (sélectionner le bloc, puis Ctrl-x) et de créer un nouvel objet texte (cliquer n'importe où avec l'outil texte) et de coller le texte dedans (Ctrl-v) ; attention, les retours chariots peuvent être supprimés (sans être remplacés par des espaces). | ||
Autre possibilité, on peut exporter en PDF depuis Dia (via EPS, comme vu au paragraphe précédent), puis importer le PDF depuis Inkscape ; les textes conservent alors leur apparence, mais sont convertis en chemins et donc non modifiable via l'outil texte. | Autre possibilité, on peut exporter en PDF depuis Dia (via EPS, comme vu au paragraphe précédent), puis importer le PDF depuis Inkscape ; les textes conservent alors leur apparence, mais sont convertis en chemins et donc non modifiable via l'outil texte. | ||
Ligne 51 : | Ligne 76 : | ||
* Si un problème se manifeste et que les textes n'ont pas besoin d'être retouchés, utiliser l'export « Graphique vectoriel Cairo (SVG) » depuis Dia, puis ouvrir le fichier SVG ainsi généré depuis Inkscape. | * Si un problème se manifeste et que les textes n'ont pas besoin d'être retouchés, utiliser l'export « Graphique vectoriel Cairo (SVG) » depuis Dia, puis ouvrir le fichier SVG ainsi généré depuis Inkscape. | ||
== OpenDocument Spreadsheet (LibreOffice Calc) vers PDF == | |||
OpenOffice a toujours permis d'exporter ses documents en PDF. LibreOffice (mais pas OpenOffice) peut à présent convertir des documents en ligne de commande. Voici un exemple pour un document Calc : | |||
localc --nologo --convert-to pdf image.ods | |||
Un fichier image.pdf sera généré dans le répertoire courant (consulter le man pour plus d'options d'exportation). L'option {{code|--nologo}} sert à éviter l'affichage de l'écran de démarrage de LibreOffice. | |||
Vous devez néanmoins prendre garde à deux choses : | |||
* Définissez bien la taille de la page pour qu'elle corresponde à la taille du tableau à exporter. S'il ne tient pas sur une page, le PDF fera plusieurs pages (ce qui peut être votre but, d'ailleurs). | |||
* Si une instance de LibreOffice (version 3.4) est lancée, l'exportation ne se fera pas. Espérons que ce problème soit corrigé dans les prochaines versions. | |||
Dans un Makefile : | |||
%.pdf: %.ods | |||
localc --nologo --convert-to pdf $< | |||
== Netbeans UML vers vectoriel (non supporté) == | |||
J'utilisais le module UML de Netbeans (version 6.0.1) pour créer mes diagrammes UML, mais il ne sait apparemment exporter qu'en bitmap (PNG). Enfin, il y a bien un export SVG, mais il s'agit en fait d'une image bitmap embarquée dans un SVG, autant dire que je n'ai jamais rien vu de plus stupide ! | |||
Si vous avez une méthode pour exporter dans un format vectoriel, faites-moi signe ! | |||
Note : je n'ai essayé sur aucune version supérieure à la 6.0.1, peut-être que ça a évolué dans les versions plus récentes. | |||
== Logiciels ne posant pas problème == | == Logiciels ne posant pas problème == | ||
=== Inkscape === | |||
Version 0.46 : | |||
* L'export « PDF avec la librairie Cairo » fonctionne bien avec les options par défaut (PDF 1.4, Convertir les textes en chemins). | |||
* L'export EPS fonctionne bien aussi, mais il faut cocher « Créer une boîte englobante autour de la page » pour que la mise en page soit respectée (sinon les objets en dehors de la page apparaîtront et l'image sera redimensionnée). | |||
Version 0.47 : | |||
* L'option d'export « PDF avec la librairie Cairo » a disparu, mais « Portable Document Format » donne des résultats corrects. Peut-être est-ce juste l'entrée du menu qui a été renommée. | |||
Version 0.48 : | |||
* L'import PDF fonctionne bien (de mémoire il fonctionnait déjà bien avec les précédentes versions). | |||
=== XFig === | |||
L'export EPS et PDF fonctionne bien (version 3.2.5a). | |||
Dernière version du 19 mars 2012 à 14:11
Sur cette page je synthétise les astuces que j'ai trouvées pour parvenir à exporter dans les formats que je veux à partir d'un logiciel donné. J'ai une nette préférence pour les formats vectoriels, surtout quand il s'agit de produire des documents, c'est pourquoi je passe parfois par des techniques détournées pour parvenir à mes fins plutôt que d'utiliser un export bitmap qui fonctionne bien dans l'immense majorité des applications.
EPS vers PDF
Une seule commande :
epstopdf image.eps
Dans un Makefile, ça donne :
%.pdf: %.eps epstopdf $<
PDF vers EPS
Assez simple en deux commandes :
pdftops image.pdf ps2eps image.ps
Dans un Makefile, ça donne :
%.eps: %.pdf pdftops $< \ && ps2eps $(<:.pdf=.ps)
SVG vers PDF et inversement
Inkscape fonctionne très bien pour convertir des images SVG en PDF, y compris en ligne de commande :
inkscape -A image.pdf image.svg
Et inversement, pour convertir une image PDF en SVG :
inkscape -l image.svg image.pdf
Voir infra pour plus de détails sur les différentes versions d'Inkscape.
Dans un Makefile, on pourra écrire ceci (--export-pdf
et --export-plain-svg
sont les options longues pour -A
et -l
, respectivement) :
%.pdf: %.svg inkscape --export-pdf=$@ $< %.svg: %.pdf inkscape --export-plain-svg=$@ $<
Dia vers EPS et PDF
L'export PDF de dia (version 0.97) fait n'importe quoi. Il faut donc passer par l'export EPS utilisant les polices Pango (avec les polices Latin1 c'est laid) :
- Fichier -> Exporter. En face de « Déterminer le type du fichier », choisir « PostScript encapsulé (EPS) utilisant les polices Pango (*.eps) »
- Ou en ligne de commandes :
dia -e image.eps image.dia
Consultez la page de manuel pour connaître les options d'export (notamment la sélection des calques).
Une fois le fichier EPS exporté, utiliser la commande epstopdf pour la convertir en PDF comme vu plus haut.
Dans un Makefile, on peut écrire ceci (--export
est la version longue de l'option -e
) :
%.pdf: %.dia dia --export=$@ $< \ && epstopdf $(<:.dia=.eps)
Dia vers SVG (Inkscape)
Côté Inkscape
Inkscape (version 0.46, peut-être avant) sait ouvrir les fichiers *.dia. Le résultat est généralement satisfaisant, mais j'ai rencontré des soucis avec certains textes, qui perdaient leur apparence et avaient un comportement étrange quand je tentais une modification (un texte multi-lignes dans Dia reste un seul bloc de texte dans Inkscape, mais les lignes se « fondent » lorsqu'on supprime les retours chariot… très étrange). Le plus simple est alors de copier le contenu du bloc de texte (sélectionner le bloc, puis Ctrl-x) et de créer un nouvel objet texte (cliquer n'importe où avec l'outil texte) et de coller le texte dedans (Ctrl-v) ; attention, les retours chariots peuvent être supprimés (sans être remplacés par des espaces).
Autre possibilité, on peut exporter en PDF depuis Dia (via EPS, comme vu au paragraphe précédent), puis importer le PDF depuis Inkscape ; les textes conservent alors leur apparence, mais sont convertis en chemins et donc non modifiable via l'outil texte.
Côté Dia
Dia comporte également un export vers différentes variantes du format SVG :
- Graphique vectoriel Cairo (SVG) (*.svg) : donne a priori le même résultat que la technique « export PDF puis import dans Inkscape » décrite précédemment. À privilégier donc puisqu'on économise l'étape EPS.
- Scalable Vector Graphics (*.svg) : a priori exactement le même comportement que l'ouverture du fichier Dia depuis Inkscape, avec le même problème sur les textes.
- SVG plain (*.svg) : les textes multi-lignes dans Dia sont transformés en autant d'objets texte qu'il y a de lignes, mais la modification (ajout de texte notamment) reste toujours aussi problématique. De plus, l'apparence générale du diagramme est moins bien respectée. À déconseiller.
- SVG compressed (*.svgz) : même chose que le précédent, mais compressé.
En bref
Pour résumer :
- Le plus simple est d'ouvrir le fichier Dia depuis Inkscape.
- Si un problème se manifeste et que les textes n'ont pas besoin d'être retouchés, utiliser l'export « Graphique vectoriel Cairo (SVG) » depuis Dia, puis ouvrir le fichier SVG ainsi généré depuis Inkscape.
OpenDocument Spreadsheet (LibreOffice Calc) vers PDF
OpenOffice a toujours permis d'exporter ses documents en PDF. LibreOffice (mais pas OpenOffice) peut à présent convertir des documents en ligne de commande. Voici un exemple pour un document Calc :
localc --nologo --convert-to pdf image.ods
Un fichier image.pdf sera généré dans le répertoire courant (consulter le man pour plus d'options d'exportation). L'option --nologo
sert à éviter l'affichage de l'écran de démarrage de LibreOffice.
Vous devez néanmoins prendre garde à deux choses :
- Définissez bien la taille de la page pour qu'elle corresponde à la taille du tableau à exporter. S'il ne tient pas sur une page, le PDF fera plusieurs pages (ce qui peut être votre but, d'ailleurs).
- Si une instance de LibreOffice (version 3.4) est lancée, l'exportation ne se fera pas. Espérons que ce problème soit corrigé dans les prochaines versions.
Dans un Makefile :
%.pdf: %.ods localc --nologo --convert-to pdf $<
Netbeans UML vers vectoriel (non supporté)
J'utilisais le module UML de Netbeans (version 6.0.1) pour créer mes diagrammes UML, mais il ne sait apparemment exporter qu'en bitmap (PNG). Enfin, il y a bien un export SVG, mais il s'agit en fait d'une image bitmap embarquée dans un SVG, autant dire que je n'ai jamais rien vu de plus stupide !
Si vous avez une méthode pour exporter dans un format vectoriel, faites-moi signe !
Note : je n'ai essayé sur aucune version supérieure à la 6.0.1, peut-être que ça a évolué dans les versions plus récentes.
Logiciels ne posant pas problème
Inkscape
Version 0.46 :
- L'export « PDF avec la librairie Cairo » fonctionne bien avec les options par défaut (PDF 1.4, Convertir les textes en chemins).
- L'export EPS fonctionne bien aussi, mais il faut cocher « Créer une boîte englobante autour de la page » pour que la mise en page soit respectée (sinon les objets en dehors de la page apparaîtront et l'image sera redimensionnée).
Version 0.47 :
- L'option d'export « PDF avec la librairie Cairo » a disparu, mais « Portable Document Format » donne des résultats corrects. Peut-être est-ce juste l'entrée du menu qui a été renommée.
Version 0.48 :
- L'import PDF fonctionne bien (de mémoire il fonctionnait déjà bien avec les précédentes versions).
XFig
L'export EPS et PDF fonctionne bien (version 3.2.5a).