Code 39

Code 39 ist eine 1D-Symbologie, die häufig für die industrielle Kennzeichnung verwendet wird. Der Standard-Zeichensatz umfasst Großbuchstaben, Ziffern, Leerzeichen und -.$/+%; übergeben Sie full_ascii=True, um jedes 7-Bit-Zeichen als Paar von Symbolen zu codieren.

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

Siehe auch

Code 39 auf Wikipedia für Hintergründe zur Symbologie selbst.

Code-39-Barcodes sind in ISO/IEC 16388 definiert (Informationstechnik – Automatische Identifikation und Datenerfassungsverfahren – Code 39 Spezifikationen für Strichcode-Symbologien).

Beispiel

from pystrich.code39 import Code39Encoder

encoder = Code39Encoder("64755")
encoder.save_svg("code39-example.svg")
Code-39-Barcode, der "64755" codiert.

Größe, Beschriftung, Schrift und Layout

Das Argument bar_width von save() und get_imagedata() legt die Pixelbreite des schmalsten Strichs fest (Vorgabe 3).

Das an Code39Encoder übergebene options-Dict steuert die Klarschriftzeile und das umgebende Layout. Alle Schlüssel sind optional.

show_label

Ob die Klarschriftzeile unter den Strichen gerendert wird. Vorgabe True; setzen Sie ihn auf False, um sie zu unterdrücken.

ttf_font

Absoluter Pfad zu einer TrueType-Schriftdatei, die für die Beschriftung verwendet wird. Ohne Angabe wird eine mitgelieferte Bitmap-Schrift verwendet.

ttf_fontsize

Schriftgröße in Punkt.

height

Gesamte Bildhöhe in Pixeln. Vorgabe 120.

label_border

Pixel an vertikalem Abstand zwischen den Strichen und der Beschriftung.

bottom_border

Pixel an vertikalem Abstand zwischen der Beschriftung und der Unterkante.

Siehe auch

Barcodes drucken für Hinweise zur Wahl von bar_width bei gedruckter Ausgabe.

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-39-Barcode, der "64755" mit höherem Bild und größerer Beschriftung codiert.

Ausgabeformate

SVG-Ausgabe

Zum Einbetten in Webseiten oder für jeden Arbeitsablauf, der von auflösungsunabhängiger Ausgabe profitiert, verwenden Sie save_svg() (oder get_svg(), um das SVG als Zeichenkette zu erhalten).

Code39Encoder("64755").save_svg("code39.svg")
SVG-Code-39-Barcode, der "64755" codiert.

Die viewBox des SVG ist in Moduleinheiten angegeben (ein Schmalstrich = eine Einheit), während width und height mit bar_width skalieren. Die vom Standard geforderten Ruhezonen von 10 Modulen werden automatisch auf jeder Seite angewendet.

Neu in Version 0.12.

PNG-Ausgabe

Verwenden Sie für die Rasterausgabe save(), um eine PNG-Datei zu schreiben, oder get_imagedata(), um die rohen PNG-Bytes zu erhalten.

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

EPS-Ausgabe

Verwenden Sie zum Einbetten in LaTeX (\includegraphics) oder andere Vektor-Druck-Arbeitsabläufe save_eps() (oder get_eps(), um das EPS als Zeichenkette zu erhalten).

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

Das Argument bar_width ist die Breite des schmalsten Strichs in PostScript-Punkten (1 Punkt = 1/72 Zoll). Die Ruhezonen von 10 Modulen werden automatisch angewendet.

Neu in Version 0.12.

API

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

Bases: Bar1DEncoder

Codiert eine Zeichenkette als Code-39-1D-Barcode.

Standardmäßig wird nur der Standard-Zeichensatz von Code 39 akzeptiert (0-9, A-Z, Leerzeichen und -.$/+%). Übergeben Sie full_ascii=True, um die Full-ASCII-Erweiterung zu nutzen, die jedes 7-Bit-Zeichen über gepaarte Symbole codiert.

Typische Verwendung:

encoder = Code39Encoder("ABC-123")
encoder.save("barcode.png")
Variablen:
  • text – Der ursprüngliche Eingabetext.

  • encoded_text – Liste der vom Text-Encoder erzeugten Codewerte.

  • bars – Das Strich-/Lücken-Muster als Zeichenkette aus "1" und "0".

  • options – Options-Dict zur Renderzeit (leer, wenn keine angegeben wurden).

  • width – Pixelbreite des zuletzt gerenderten Bildes.

  • height – Pixelhöhe des zuletzt gerenderten Bildes.

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

Rendert den Barcode und gibt EPS-Markup zurück.

Parameter:
  • bar_width – Breite des schmalsten Strichs in PostScript-Punkten.

  • dark_hex – Strich- und Textfarbe als 3-, 6- oder 8-stelliger Hex-String oder RGBA. Standard ist Schwarz.

  • light_hex – Hintergrundfarbe als 3-, 6- oder 8-stelliger Hex-String oder RGBA, deckend. Standard ist Weiß.

Rückgabetyp:

str

Neu in Version 0.12.

Geändert in Version 0.16: dark_hex und light_hex hinzugefügt.

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

Rendert den Barcode und gibt PNG-Bytes zurück.

Parameter:
  • bar_width – Breite des schmalsten Strichs in Pixeln.

  • dark_hex – Strich- und Textfarbe als 3-, 6- oder 8-stelliger Hex-String oder RGBA. Standard ist Schwarz.

  • light_hex – Hintergrundfarbe als 3-, 6- oder 8-stelliger Hex-String oder RGBA. Standard ist Weiß.

Rückgabe:

PNG-codierte Bilddaten.

Rückgabetyp:

bytes

Geändert in Version 0.16: dark_hex und light_hex hinzugefügt.

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

Rendert den Barcode und gibt ein Pillow-Bild zurück.

Parameter:
  • bar_width – Breite des schmalsten Strichs in Pixeln.

  • dark_hex – Strich- und Textfarbe als 3-, 6- oder 8-stelliger Hex-String oder RGBA. Standard ist Schwarz.

  • light_hex – Hintergrundfarbe als 3-, 6- oder 8-stelliger Hex-String oder RGBA. Standard ist Weiß.

Rückgabe:

Der gerenderte Barcode.

Rückgabetyp:

PIL.Image.Image

Neu in Version 0.11.

Geändert in Version 0.16: dark_hex und light_hex hinzugefügt.

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

Rendert den Barcode und gibt SVG-Markup zurück.

Parameter:
  • bar_width – Breite des schmalsten Strichs in Benutzereinheiten.

  • dark_hex – Strich- und Textfarbe als 3-, 6- oder 8-stelliger Hex-String oder RGBA. Standard ist Schwarz.

  • light_hex – Hintergrundfarbe als 3-, 6- oder 8-stelliger Hex-String oder RGBA. Standard ist Weiß.

Rückgabetyp:

str

Neu in Version 0.12.

Geändert in Version 0.16: dark_hex und light_hex hinzugefügt.

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

Rendert den Barcode und gibt einen PNG-data:-URL-String zurück.

Parameter:
  • bar_width – Breite des schmalsten Strichs in Pixeln.

  • dark_hex – Strich- und Textfarbe als 3-, 6- oder 8-stelliger Hex-String oder RGBA. Standard ist Schwarz.

  • light_hex – Hintergrundfarbe als 3-, 6- oder 8-stelliger Hex-String oder RGBA. Standard ist Weiß.

Rückgabetyp:

str

Neu in Version 0.15.

Geändert in Version 0.16: dark_hex und light_hex hinzugefügt.

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

Rendert den Barcode in eine PNG-Datei.

Parameter:
  • filename – Pfad, in den das PNG geschrieben wird.

  • bar_width – Breite des schmalsten Strichs in Pixeln.

  • dark_hex – Strich- und Textfarbe als 3-, 6- oder 8-stelliger Hex-String oder RGBA. Standard ist Schwarz.

  • light_hex – Hintergrundfarbe als 3-, 6- oder 8-stelliger Hex-String oder RGBA. Standard ist Weiß.

Geändert in Version 0.16: dark_hex und light_hex hinzugefügt.

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

Speichert den Barcode als EPS-Datei. Übergeben Sie einen .eps-Dateinamen.

Parameter:
  • filename – EPS-Ausgabepfad.

  • bar_width – Breite des schmalsten Strichs in PostScript-Punkten.

  • dark_hex – Strich- und Textfarbe als 3-, 6- oder 8-stelliger Hex-String oder RGBA. Standard ist Schwarz.

  • light_hex – Hintergrundfarbe als 3-, 6- oder 8-stelliger Hex-String oder RGBA, deckend. Standard ist Weiß.

Neu in Version 0.12.

Geändert in Version 0.16: dark_hex und light_hex hinzugefügt.

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

Speichert den Barcode als SVG-Datei. Übergeben Sie einen .svg-Dateinamen.

Parameter:
  • filename – SVG-Ausgabepfad.

  • bar_width – Breite des schmalsten Strichs in Benutzereinheiten.

  • dark_hex – Strich- und Textfarbe als 3-, 6- oder 8-stelliger Hex-String oder RGBA. Standard ist Schwarz.

  • light_hex – Hintergrundfarbe als 3-, 6- oder 8-stelliger Hex-String oder RGBA. Standard ist Weiß.

Neu in Version 0.12.

Geändert in Version 0.16: dark_hex und light_hex hinzugefügt.

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

Rendert den Barcode und gibt einen SVG-data:-URL-String zurück.

Parameter:
  • bar_width – Breite des schmalsten Strichs in Benutzereinheiten.

  • dark_hex – Strich- und Textfarbe als 3-, 6- oder 8-stelliger Hex-String oder RGBA. Standard ist Schwarz.

  • light_hex – Hintergrundfarbe als 3-, 6- oder 8-stelliger Hex-String oder RGBA. Standard ist Weiß.

Rückgabetyp:

str

Neu in Version 0.15.

Geändert in Version 0.16: dark_hex und light_hex hinzugefügt.

init_renderer() Code39Renderer[Quellcode]

Konstruiert einen Code39Renderer für die codierten Striche.

Rückgabetyp:

Code39Renderer