ITF-14 ****** Ajouté dans la version 0.16: La prise en charge d'ITF-14 et du 2 parmi 5 entrelacé a été ajoutée dans cette version. ITF-14 est le code-barres GS1 correspondant à un GTIN-14 -- l'identifiant à 14 chiffres imprimé sur les cartons et caisses d'expédition plutôt que sur l'article de détail qu'ils contiennent. C'est une application du 2 parmi 5 entrelacé (*Interleaved 2 of 5*, en abrégé ITF), qui compacte des paires de chiffres dans des barres et des espaces alternés, entourées d'une *barre de support* (*bearer bar*) qui encadre le symbole. Passez soit 13 chiffres (le chiffre de contrôle est calculé et ajouté), soit 14 chiffres (le dernier chiffre est traité comme un chiffre de contrôle et recalculé). Voir aussi: 2 parmi 5 entrelacé sur Wikipédia pour des informations générales sur la symbologie. Les codes-barres 2 parmi 5 entrelacé sont définis dans la norme ISO/IEC 16390 (Technologies de l'information -- Techniques automatiques d'identification et de capture des données -- Spécifications des symbologies des codes à barres -- Code 2 parmi 5 entrelacé). Avertissement: Les codes GTIN-14 réels sont dérivés d'un GTIN attribué par GS1 ; vous ne pouvez pas simplement en inventer un. L'entrée doit comporter exactement 13 ou 14 chiffres, ASCII "0"-"9". Toute autre valeur lève "PyStrichInvalidPayloadLength". Le libellé en clair à 14 chiffres sous les barres est rendu par défaut (voir Libellé pour le supprimer). Le chiffre de contrôle est toujours calculé par pyStrich ; passez soit 13 chiffres (il est ajouté), soit 14 chiffres (le dernier chiffre fourni est ignoré et recalculé) : >>> from pystrich.itf import ITF14Encoder >>> ITF14Encoder("1505007000766").full_code '15050070007661' >>> ITF14Encoder("15050070007660").full_code '15050070007661' Exemple ======= from pystrich.itf import ITF14Encoder encoder = ITF14Encoder("1505007000766") encoder.save_svg("itf14-example.svg") [image: Code-barres ITF-14 encodant « 15050070007661 ».][image] Barre de support ================ ITF-14 est tracé avec une barre de support à cadre complet -- la bordure épaisse qui entoure le symbole. Elle réduit le risque qu'une lecture partielle soit interprétée à tort comme un code court mais valide. Son épaisseur vaut par défaut 4 largeurs de barre étroite ; ajustez-la avec la clé "bearer_width" de "ITFRenderOptions" (réglez-la sur "0" pour omettre la barre de support) : ITF14Encoder("1505007000766", options={"bearer_width": 6}).save("itf14.png") Libellé ======= Le libellé en clair est rendu par défaut. Pour composer le vôtre à la place, supprimez-le avec "show_label" : ITF14Encoder("1505007000766", options={"show_label": False}).save("itf14.png") 2 parmi 5 entrelacé =================== Pour un symbole 2 parmi 5 entrelacé simple -- n'importe quel nombre pair de chiffres --, utilisez directement "ITFEncoder". Il n'a pas de barre de support par défaut, mais accepte la même option "bearer_width". from pystrich.itf import ITFEncoder ITFEncoder("1234567890").save_svg("itf-example.svg") [image: Code-barres 2 parmi 5 entrelacé encodant « 1234567890 ».][image] Formats de sortie ================= Comme les autres symbologies 1D, ITF-14 se rend en SVG ("save_svg()"), PNG ("save()") et EPS ("save_eps()"). L'argument "bar_width" définit la largeur de la barre la plus étroite. Voir aussi: Impression des codes-barres pour des conseils sur le choix de "bar_width" pour une sortie imprimée. API === class ITF14Encoder(code: str, options: ITFRenderOptions | None = None, *, require_valid_check_digit: bool = False) Bases : "ITFEncoder" Encode un code de 13 ou 14 chiffres sous forme de code-barres ITF-14 (GTIN-14). Le chiffre de contrôle est calculé pour vous. Si un code de 14 chiffres est fourni, son dernier chiffre est ignoré et recalculé. Le symbole est encadré par une barre de support, sauf si "bearer_width" est redéfini dans "options". Utilisation typique: encoder = ITF14Encoder("1540141453698") encoder.save("itf14.png") Variables: * **check_digit** -- Le chiffre de contrôle modulo 10 calculé. * **full_code** -- Le code de 14 chiffres, chiffre de contrôle compris (== "digits"). 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 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 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 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 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 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. 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. 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. 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 static calculate_check_digit(code: str) -> int Calcule le chiffre de contrôle modulo 10 GTIN-14 pour les 13 chiffres de données. En parcourant de droite à gauche, les chiffres sont pondérés 3, 1, 3, 1, … ; le chiffre de contrôle porte la somme pondérée à un multiple de 10. init_renderer() -> ITFRenderer Construit un "ITFRenderer", avec la barre de support activée par défaut. class ITFEncoder(digits: str, options: ITFRenderOptions | None = None) Bases : "Bar1DEncoder" Encode une chaîne de chiffres de longueur paire sous forme de code- barres 2 parmi 5 entrelacé. Utilisation typique: encoder = ITFEncoder("1234567890") encoder.save("itf.png") Variables: * **digits** -- Les chiffres encodés. * **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. init_renderer() -> ITFRenderer Construit un "ITFRenderer" pour les barres encodées. 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 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 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 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 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 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. 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. 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. 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 class ITFRenderOptions Bases : "BarcodeRenderOptions" Réglages de rendu facultatifs pour les codes-barres 2 parmi 5 entrelacé / ITF-14. Étend "pystrich.types.BarcodeRenderOptions". Toutes les clés sont facultatives ; les clés omises se rabattent sur les valeurs par défaut de la bibliothèque. bearer_width: int Épaisseur des traits de la barre de support, en largeurs de barre étroite. "0" ne dessine aucune barre de support. Vaut "0" par défaut pour le 2 parmi 5 entrelacé simple et "4" pour ITF-14.