Code 39

Code 39 est une symbologie 1D largement utilisée pour l’étiquetage industriel. Le jeu de caractères par défaut comprend les lettres majuscules, les chiffres, l’espace et -.$/+% ; passez full_ascii=True pour encoder n’importe quel caractère 7 bits sous forme de paire de symboles.

Code39Encoder("17 E North 32 St", full_ascii=True).save("code39-address.png")

Voir aussi

Code 39 sur Wikipédia pour des informations générales sur la symbologie elle-même.

Les codes-barres Code 39 sont définis dans la norme ISO/IEC 16388 (Technologies de l’information – Techniques automatiques d’identification et de capture des données – Spécifications des symbologies des codes à barres – Code 39).

Exemple

from pystrich.code39 import Code39Encoder

encoder = Code39Encoder("64755")
encoder.save_svg("code39-example.svg")
Code-barres Code 39 encodant « 64755 ».

Dimensionnement, libellé, police et mise en page

L’argument bar_width de save() et get_imagedata() définit la largeur, en pixels, de la barre la plus étroite (3 par défaut).

Le dictionnaire options passé à Code39Encoder contrôle le libellé en clair et la mise en page environnante. Toutes les clés sont facultatives.

show_label

Indique si le libellé en clair doit être rendu sous les barres. Vaut True par défaut ; réglez sur False pour le supprimer.

ttf_font

Chemin absolu vers un fichier de police TrueType utilisé pour le libellé. À défaut, une police bitmap fournie est utilisée.

ttf_fontsize

Taille de police en points.

height

Hauteur totale de l’image en pixels. Vaut 120 par défaut.

label_border

Espace vertical, en pixels, entre les barres et le libellé.

bottom_border

Espace vertical, en pixels, entre le libellé et le bord inférieur.

Voir aussi

Impression des codes-barres pour des conseils sur le choix de bar_width pour une sortie imprimée.

options = {
    "height": 200,
    "label_border": 10,
    "bottom_border": 10,
    "ttf_fontsize": 24,
    # "ttf_font": "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf",
}
encoder = Code39Encoder("64755", options=options)
encoder.save("code39-custom.png", bar_width=4)
Code-barres Code 39 encodant « 64755 » avec une image plus haute et un libellé plus grand.

Formats de sortie

Sortie SVG

Pour une intégration dans des pages web ou tout flux de travail tirant parti d’une sortie indépendante de la résolution, utilisez save_svg() (ou get_svg() pour récupérer le SVG sous forme de chaîne).

Code39Encoder("64755").save_svg("code39.svg")
Code-barres Code 39 SVG encodant « 64755 ».

Le viewBox du SVG est exprimé en unités de module (une barre étroite = une unité), tandis que width et height sont mis à l’échelle par bar_width. Les zones de silence de 10 modules imposées par la norme sont appliquées automatiquement de chaque côté.

Ajouté dans la version 0.12.

Sortie PNG

Pour une sortie matricielle, utilisez save() pour écrire un fichier PNG ou get_imagedata() pour récupérer les octets PNG bruts.

Code39Encoder("64755").save("code39.png")

Sortie EPS

Pour une intégration dans LaTeX (\includegraphics) ou d’autres flux d’impression vectorielle, utilisez save_eps() (ou get_eps() pour récupérer l’EPS sous forme de chaîne).

Code39Encoder("64755").save_eps("code39.eps")

L’argument bar_width est la largeur de la barre la plus étroite en points PostScript (1 point = 1/72 de pouce). Les zones de silence de 10 modules sont appliquées automatiquement.

Ajouté dans la version 0.12.

API

class Code39Encoder(text: str, full_ascii: bool = False, options: BarcodeRenderOptions | None = None)[source]

Bases : Bar1DEncoder

Encode une chaîne sous forme de code-barres 1D Code 39.

Par défaut, seul le jeu de caractères Code 39 standard est accepté (0-9, A-Z, l’espace et -.$/+%). Passez full_ascii=True pour utiliser l’extension ASCII complète, qui encode n’importe quel caractère 7 bits via des symboles appariés.

Utilisation typique:

encoder = Code39Encoder("ABC-123")
encoder.save("barcode.png")
Variables:
  • text – Le texte d’entrée d’origine.

  • encoded_text – Liste des valeurs de code produites par l’encodeur de texte.

  • bars – Le motif de barres et d’espaces sous forme de chaîne de "1" et de "0".

  • options – Dictionnaire d’options de rendu (vide si aucune n’a été fournie).

  • width – Largeur en pixels de la dernière image rendue.

  • height – Hauteur en pixels de la dernière image rendue.

get_eps(bar_width: int = 3, *, dark_hex: str | RGBA | None = None, light_hex: str | RGBA | None = None) str

Génère le code-barres et renvoie le balisage EPS.

Paramètres:
  • bar_width – Largeur en points PostScript de la barre la plus étroite.

  • dark_hex – Couleur des barres et du texte, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un RGBA. Noir par défaut.

  • light_hex – Couleur de fond, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un RGBA, opaque. Blanc par défaut.

Type renvoyé:

str

Ajouté dans la version 0.12.

Modifié dans la version 0.16: Ajout de dark_hex et light_hex.

get_imagedata(bar_width: int = 3, *, dark_hex: str | RGBA | None = None, light_hex: str | RGBA | None = None) bytes

Génère le code-barres et renvoie les octets PNG.

Paramètres:
  • bar_width – Largeur en pixels de la barre la plus étroite.

  • dark_hex – Couleur des barres et du texte, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un RGBA. Noir par défaut.

  • light_hex – Couleur de fond, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un RGBA. Blanc par défaut.

Renvoie:

Données d’image encodées en PNG.

Type renvoyé:

bytes

Modifié dans la version 0.16: Ajout de dark_hex et light_hex.

get_pilimage(bar_width: int = 3, *, dark_hex: str | RGBA | None = None, light_hex: str | RGBA | None = None) PILImage

Génère le code-barres et renvoie une image Pillow.

Paramètres:
  • bar_width – Largeur en pixels de la barre la plus étroite.

  • dark_hex – Couleur des barres et du texte, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un RGBA. Noir par défaut.

  • light_hex – Couleur de fond, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un RGBA. Blanc par défaut.

Renvoie:

Le code-barres rendu.

Type renvoyé:

PIL.Image.Image

Ajouté dans la version 0.11.

Modifié dans la version 0.16: Ajout de dark_hex et light_hex.

get_rect_marks() SymbolMarks

Renvoie les barres sombres du code-barres sous forme de rectangles en unités de mise en page.

Type renvoyé:

pystrich.marks.SymbolMarks

Ajouté dans la version 0.18.

get_svg(bar_width: int = 3, *, dark_hex: str | RGBA | None = None, light_hex: str | RGBA | None = None) str

Génère le code-barres et renvoie le balisage SVG.

Paramètres:
  • bar_width – Largeur en unités utilisateur de la barre la plus étroite.

  • dark_hex – Couleur des barres et du texte, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un RGBA. Noir par défaut.

  • light_hex – Couleur de fond, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un RGBA. Blanc par défaut.

Type renvoyé:

str

Ajouté dans la version 0.12.

Modifié dans la version 0.16: Ajout de dark_hex et light_hex.

png_dataurl(bar_width: int = 3, *, dark_hex: str | RGBA | None = None, light_hex: str | RGBA | None = None) str

Génère le code-barres et renvoie une chaîne d’URL data: PNG.

Paramètres:
  • bar_width – Largeur en pixels de la barre la plus étroite.

  • dark_hex – Couleur des barres et du texte, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un RGBA. Noir par défaut.

  • light_hex – Couleur de fond, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un RGBA. Blanc par défaut.

Type renvoyé:

str

Ajouté dans la version 0.15.

Modifié dans la version 0.16: Ajout de dark_hex et light_hex.

save(filename: str | os.PathLike[str], bar_width: int = 3, *, dark_hex: str | RGBA | None = None, light_hex: str | RGBA | None = None) None

Génère le code-barres dans un fichier PNG.

Paramètres:
  • filename – Chemin où écrire le PNG.

  • bar_width – Largeur en pixels de la barre la plus étroite.

  • dark_hex – Couleur des barres et du texte, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un RGBA. Noir par défaut.

  • light_hex – Couleur de fond, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un RGBA. Blanc par défaut.

Modifié dans la version 0.16: Ajout de dark_hex et light_hex.

save_eps(filename: str | os.PathLike[str], bar_width: int = 3, *, dark_hex: str | RGBA | None = None, light_hex: str | RGBA | None = None) None

Enregistre le code-barres dans un fichier EPS. Passez un nom de fichier .eps.

Paramètres:
  • filename – Chemin de sortie EPS.

  • bar_width – Largeur en points PostScript de la barre la plus étroite.

  • dark_hex – Couleur des barres et du texte, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un RGBA. Noir par défaut.

  • light_hex – Couleur de fond, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un RGBA, opaque. Blanc par défaut.

Ajouté dans la version 0.12.

Modifié dans la version 0.16: Ajout de dark_hex et light_hex.

save_svg(filename: str | os.PathLike[str], bar_width: int = 3, *, dark_hex: str | RGBA | None = None, light_hex: str | RGBA | None = None) None

Enregistre le code-barres dans un fichier SVG. Passez un nom de fichier .svg.

Paramètres:
  • filename – Chemin de sortie SVG.

  • bar_width – Largeur en unités utilisateur de la barre la plus étroite.

  • dark_hex – Couleur des barres et du texte, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un RGBA. Noir par défaut.

  • light_hex – Couleur de fond, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un RGBA. Blanc par défaut.

Ajouté dans la version 0.12.

Modifié dans la version 0.16: Ajout de dark_hex et light_hex.

svg_dataurl(bar_width: int = 3, *, dark_hex: str | RGBA | None = None, light_hex: str | RGBA | None = None) str

Génère le code-barres et renvoie une chaîne d’URL data: SVG.

Paramètres:
  • bar_width – Largeur en unités utilisateur de la barre la plus étroite.

  • dark_hex – Couleur des barres et du texte, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un RGBA. Noir par défaut.

  • light_hex – Couleur de fond, sous forme de chaîne hexadécimale de 3, 6 ou 8 chiffres ou d’un RGBA. Blanc par défaut.

Type renvoyé:

str

Ajouté dans la version 0.15.

Modifié dans la version 0.16: Ajout de dark_hex et light_hex.

init_renderer() Code39Renderer[source]

Construit un Code39Renderer pour les barres encodées.

Type renvoyé:

Code39Renderer