Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope > Zope
Zope Forum d'entraide sur Zope et ses CMS (Plone, ...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 17/05/2011, 15h21   #1
airod
Membre émérite
 
Avatar de airod
 
Homme Benoit Martiré
Synapse médical, Sèvres (92)
Inscription : août 2004
Messages : 722
Détails du profil
Informations personnelles :
Nom : Homme Benoit Martiré
Âge : 37
Localisation : France

Informations professionnelles :
Activité : Synapse médical, Sèvres (92)
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2004
Messages : 722
Points : 850
Points : 850
Envoyer un message via Skype™ à airod
Par défaut Créer une image code barre

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.
Code :
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())
J'ai fait un import de PIL car il est probable que zope ait déjà un module Image.

Voici le message derreur :
Citation:
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
je répète que le script fonctionne s'il est utilisé en dehors de Zope.

Avez vous des suggestions.

Nota :
dans zope le code suivant fonctionne
Code :
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())
__________________
Pensez à la documentation en ligne, ca aide!

"Heureux ceux qui se libèrent de leurs chaines"
"Ne faites simple que si vous savez faire compliqué aussi !"
airod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 12h06   #2
airod
Membre émérite
 
Avatar de airod
 
Homme Benoit Martiré
Synapse médical, Sèvres (92)
Inscription : août 2004
Messages : 722
Détails du profil
Informations personnelles :
Nom : Homme Benoit Martiré
Âge : 37
Localisation : France

Informations professionnelles :
Activité : Synapse médical, Sèvres (92)
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2004
Messages : 722
Points : 850
Points : 850
Envoyer un message via Skype™ à airod
Bon j'ai contourné le problème en utilisant ImageMagick pour générer l'image.

J'aime pas vraiment ça mais pour l'instant c'est la solution la plus robuste.
(Jamais déçu !)
__________________
Pensez à la documentation en ligne, ca aide!

"Heureux ceux qui se libèrent de leurs chaines"
"Ne faites simple que si vous savez faire compliqué aussi !"
airod est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h43.


 
 
 
 
Partenaires

Hébergement Web