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")
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_labelIndique si le libellé en clair doit être rendu sous les barres. Vaut
Truepar défaut ; réglez surFalsepour le supprimer.ttf_fontChemin absolu vers un fichier de police TrueType utilisé pour le libellé. À défaut, une police bitmap fournie est utilisée.
ttf_fontsizeTaille de police en points.
heightHauteur totale de l’image en pixels. Vaut
120par défaut.label_borderEspace vertical, en pixels, entre les barres et le libellé.
bottom_borderEspace 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)
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")
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 :
Bar1DEncoderEncode 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-.$/+%). Passezfull_ascii=Truepour 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é:
Ajouté dans la version 0.12.
Modifié dans la version 0.16: Ajout de
dark_hexetlight_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é:
Modifié dans la version 0.16: Ajout de
dark_hexetlight_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é:
Ajouté dans la version 0.11.
Modifié dans la version 0.16: Ajout de
dark_hexetlight_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é:
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é:
Ajouté dans la version 0.12.
Modifié dans la version 0.16: Ajout de
dark_hexetlight_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é:
Ajouté dans la version 0.15.
Modifié dans la version 0.16: Ajout de
dark_hexetlight_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_hexetlight_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_hexetlight_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_hexetlight_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é:
Ajouté dans la version 0.15.
Modifié dans la version 0.16: Ajout de
dark_hexetlight_hex.