Bonjour, voil� que je me trouve devant un probl�me que je n'arrive pas a r�gler.
Je dois cr�er des images faisant apparaitre des codes barre.
J'ai donc cr�er une external method, qui pointe vers un script python qui s'il n'est pas appel� via Zope, fonctionne.
J'ai fait un import de PIL car il est probable que zope ait d�j� un module Image.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 import PIL import base64 def RPPSIMG(text='123456789'): s=text size=100,100 image=PIL.Image.new('RGB', size,(255,255,255)) draw = PIL.ImageDraw.Draw(image) font = PIL.ImageFont.load("/usr/share/fonts/Code39r.ttf") size=draw.textsize(s, font=font) image=PIL.Image.new('RGB', size,(255,255,255)) draw = PIL.ImageDraw.Draw(image) draw.text((1,0), s, font=font,fill=(0,0,0)) return base64.encodestring(image.tostring())
Voici le message derreur :
je r�p�te que le script fonctionne s'il est utilis� en dehors de Zope.IOError
cannot find glyph data file
Traceback (innermost last):
Module ZPublisher.Publish, line 119, in publish
Module ZPublisher.mapply, line 88, in mapply
Module ZPublisher.Publish, line 42, in call_object
Module Products.ExternalMethod.ExternalMethod, line 231, in __call__
__traceback_info__: (('123456789',), {}, ('123456789',))
Module /home/zope/Extensions/imgCodeBar.py, line 11, in RPPSIMG
Module PIL.ImageFont, line 180, in load
Module PIL.ImageFont, line 79, in _load_pilfont
IOError: cannot find glyph data file
Avez vous des suggestions.
Nota :
dans zope le code suivant fonctionne
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 import PIL import base64 def RPPSIMG(text='123456789'): s='13213' size=100,100 image=PIL.Image.new('RGB', size,(255,255,255)) draw = PIL.ImageDraw.Draw(image) font = PIL.ImageFont.load_default() size=draw.textsize(s, font=font) image=PIL.Image.new('RGB', size,(255,255,255)) draw = PIL.ImageDraw.Draw(image) draw.text((1,0), s, font=font,fill=(0,0,0)) return base64.encodestring(image.tostring())
Partager