5.12.06

Afficher un rectangle depuis l'extension


Il s'agit maintenant de pouvoir afficher un rectangle de base qui représentera l'une des barres du code EAN13. Toujours dans les extensions de bases j'ai trouvé le code suivant pour tracer une ligne.

new = self.document.createElement('svg:path')
s = {'stroke-linejoin': 'miter', 'stroke-width': '1.0px',
'stroke-opacity': '1.0', 'fill-opacity': '1.0',
'stroke': '#000000', 'stroke-linecap': 'butt',
'fill': 'none'}
new.setAttribute('style', simplestyle.formatStyle(s))
new.setAttribute('d', simplepath.formatPath(a))
node.parentNode.appendChild(new)

Pour pouvoir aller plus loin je vais dans l'explorateur XML d'inkscape pour voir la différence entre une ligne et un rectangle... et je modifie donc le code en conséquence pour arriver à :

new = self.document.createElement('svg:rect') s = {'stroke': 'none', 'fill': 'black', 'fill-opacity': '1.0'} new.setAttribute('style', simplestyle.formatStyle(s)) new.setAttribute('x', str(bPosX)) new.setAttribute('y', str(bPosY)) new.setAttribute('width', str(bWidth)) new.setAttribute('height', str(bHeight)) self.current_layer.appendChild(new)

qui me déssinera un rectangle de bWidth de large sur bHeigth de haut à la position bPosX, bPosY.

2.12.06

Afficher un texte depuis l'extension


En regardant les diverses extensions livrées avec Inkscape j'ai trouvé le bout de code suivant dans l'extension dots :



new = self.document.createElement('svg:text')
s = {'font-size': self.options.fontsize, 'fill-opacity': '1.0', 'stroke': 'none',
'font-weight': 'normal', 'font-style': 'normal', 'fill': '#000000'}
new.setAttribute('style', simplestyle.formatStyle(s))
new.setAttribute('x', str(x))
new.setAttribute('y', str(y))
new.appendChild(self.document.createTextNode(str(text)))
node.appendChild(new)

Cela ressemble à ce qu'il me faut pour créer un texte sous Inkscape.
Les coordonées du texte sont x et y et le texte lui même est la chaîne str(text).
La chaîne s contient toutes les caractéristiques du texte.