Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Membre émérite
    Avatar de airod
    Homme Profil pro Benoit Martiré
    Synapse médical, Sèvres (92)
    Inscrit en
    août 2004
    Messages
    742
    Détails du profil
    Informations personnelles :
    Nom : Homme Benoit Martiré
    Âge : 39
    Localisation : France

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

    Informations forums :
    Inscription : août 2004
    Messages : 742
    Points : 815
    Points
    815

    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 :
    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!

  2. #2
    Membre émérite
    Avatar de airod
    Homme Profil pro Benoit Martiré
    Synapse médical, Sèvres (92)
    Inscrit en
    août 2004
    Messages
    742
    Détails du profil
    Informations personnelles :
    Nom : Homme Benoit Martiré
    Âge : 39
    Localisation : France

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

    Informations forums :
    Inscription : août 2004
    Messages : 742
    Points : 815
    Points
    815

    Par défaut

    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!

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •