Page 1 sur 1

Ajouter du texte par la ligne de commande

Publié : 17 juin 2020, 09:01
par yoor_thiziri
Bonjour,

* Est-il possible d'ajouter du texte à un fichier SVG par inkscape en utilisant la ligne de command: verbs/actions?
* Une autre question similaire, mais pour l'alignement des objets par rapport à la page en utilisant les verbs/action?

Merci

Re: Ajouter du texte par la ligne de commande

Publié : 17 juin 2020, 14:05
par undertaker
Bonjour yoor_thiziri,

Bienvenue sur ce site très productif et très réactif.

Le fichier svg qui contient le dessin est un fichier xml et donc, à priori, il doit être possible d'y ajouter des infos, mais pour cela il faut respecter l'orthographe xml et utiliser les références svg du w3c.
Pour vérifier ceci, il te suffit d'ouvrir un fichier de dessin Inkscape .svg avec un simple éditeur xml.

A+

Re: Ajouter du texte par la ligne de commande

Publié : 17 juin 2020, 15:47
par yoor_thiziri
Merci pour votre réponse.
Oui, le format svg est un format textuel, je peux le manipuler par certains outils: sed, awk, ..etc.
Mais je peux utiliser les verbs/actions de Inkscape, e.g:
  • Pour la rotation de tout les éléments dans le fichier svg, je peux executer cette commande:

Code : Tout sélectionner

inkscape --with-gui --actions="select-all;transform-rotate:-45;FileSave;FileQuit"
Donc, c'est beaucoup plus facile que de manipuler le fichier xml manuellement.

Je me demande s'il 'est possible d'ajouter le texte de la même manière.

Merci

Re: Ajouter du texte par la ligne de commande

Publié : 17 juin 2020, 16:06
par undertaker
Probablement.
Tu pourrais créer un dessins simple sans texte, l'enregistrer puis le modifier en ajoutant le texte et enregistrer la nouvelle version pour pouvoir comparer.
Sinon, l'étude (la lecture) des normes W3C concernant le SVG m'a été très utile.

A+

Re: Ajouter du texte par la ligne de commande

Publié : 17 juin 2020, 16:15
par yoor_thiziri
Merci beaucoup pour la suggestion,
C'est une très bonne idée, je vais ajouter un texte comme "placeholder" et avec une regex ça va donner le résultat.
Sinon, je pense que le module `svgutils` de Python serait utile.

Merci.