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") [image: Code-barres Code 39 encodant « 64755 ».][image] 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) [image: Code-barres Code 39 encodant « 64755 » avec une image plus haute et un libellé plus grand.][image] 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") [image: Code-barres Code 39 SVG encodant « 64755 ».][image] 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) 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 Construit un "Code39Renderer" pour les barres encodées. Type renvoyé: "Code39Renderer"