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")
Code-barres ITF-14 encodant « 15050070007661 ».

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")
Code-barres 2 parmi 5 entrelacé encodant « 1234567890 ».

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)[source]

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[source]

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[source]

Construit un ITFRenderer, avec la barre de support activée par défaut.

class ITFEncoder(digits: str, options: ITFRenderOptions | None = None)[source]

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[source]

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.