Kommandozeilen-Schnittstelle

Die Installation von pyStrich stellt ein pystrich-Konsolenskript bereit, mit einem Unterbefehl pro Format und Ausgabe als PNG / SVG / EPS / ASCII / Terminal / DXF.

Tipp

Um das CLI auszuprobieren, ohne pyStrich in eine Umgebung zu installieren, führen Sie es über pipx oder uvx aus:

$ pipx run pystrich datamatrix --text "Rausschmeißer"
$ uvx pystrich datamatrix --text "Rausschmeißer"
$ pystrich qrcode --text "https://en.wikipedia.org/wiki/Jasper,_Missouri" -o jasper.svg
$ pystrich code128 --text "Dalton" -o dalton.png
$ pystrich ean13 --text "5050070007664" -o ean13.png
$ echo "DLB 573" | pystrich code39 -o code39.png
$ pystrich datamatrix --text "Rausschmeißer"   # terminal preview

Das letzte Beispiel erzeugt:

                      
  █ ▀ █▄█ █ █▄█ █▄▀▄  
  █▄   ████▀  ▀  ██▄  
  █▄██▀▄▄▀▄█▀  ▄█▀▀▄  
  █▀▄ ███▀ ▄█▄▀▀▄▄▀▄  
  ██ █▄▄▄██▄▄▀▄  ▀ ▄  
  ██ ▄█ ▀█▄▀▀▀ ▄█▄▀▄  
  █ ▀ █ ▄▀▀▀ ▀█ █▄█▄  
  █▀▄ █▀█▀ █ ▀▄▀▀█▄▄  
  █▄█▄█▄███▄██▄▄▄██▄  
                      

Referenz

Erzeugt 1D-/2D-Barcodes (Code 39, Code 128, EAN-13, Interleaved 2 of 5, ITF-14, Data Matrix, QR-Code, PDF417, Aztec-Code). Übergeben Sie die Eingabe über --text oder stdin.

usage: pystrich [-h] [--version] FORMAT ...

Positionsargumente

FORMAT

Mögliche Werte: code39, code128, ean13, itf, itf14, datamatrix, qrcode, pdf417, aztec

Benannte Argumente

--version

Programmversion anzeigen und beenden

Unterbefehle

code39

Code 39 (1D)

pystrich code39 [-h] [--text TEXT] [-o OUTPUT] [-t {auto,png,svg,eps}]
                [--dark-hex HEX] [--light-hex HEX] [--bar-width BAR_WIDTH]
                [--height HEIGHT] [--full-ascii]
                [--show-label | --no-show-label]
Benannte Argumente
--text

zu codierender Text (Vorgabe: aus stdin lesen)

-o, --output

Ausgabepfad; ‚-‘ oder weggelassen schreibt nach stdout

-t, --type

Mögliche Werte: auto, png, svg, eps

Ausgabeformat; ‚auto‘ ergibt sich aus dem -o-Dateinamen oder dem Ausgabekontext

Vorgabe: 'auto'

--dark-hex

dunkle Farbe (Vordergrund) als 3, 6 oder 8 Hexziffern; nur png/svg/eps

--light-hex

helle Farbe (Hintergrund) als 3, 6 oder 8 Hexziffern; nur png/svg/eps

--bar-width

Breite des schmalsten Strichs (Vorgabe: 3)

Vorgabe: 3

--height

Bildhöhe in Pixeln

--full-ascii

Full-ASCII-Codierung von Code 39 aktivieren

Vorgabe: False

--show-label, --no-show-label

die Klarschriftzeile unter den Strichen rendern

code128

Code 128 (1D)

pystrich code128 [-h] [--text TEXT] [-o OUTPUT] [-t {auto,png,svg,eps}]
                 [--dark-hex HEX] [--light-hex HEX] [--bar-width BAR_WIDTH]
                 [--height HEIGHT] [--show-label | --no-show-label]
Benannte Argumente
--text

zu codierender Text (Vorgabe: aus stdin lesen)

-o, --output

Ausgabepfad; ‚-‘ oder weggelassen schreibt nach stdout

-t, --type

Mögliche Werte: auto, png, svg, eps

Ausgabeformat; ‚auto‘ ergibt sich aus dem -o-Dateinamen oder dem Ausgabekontext

Vorgabe: 'auto'

--dark-hex

dunkle Farbe (Vordergrund) als 3, 6 oder 8 Hexziffern; nur png/svg/eps

--light-hex

helle Farbe (Hintergrund) als 3, 6 oder 8 Hexziffern; nur png/svg/eps

--bar-width

Breite des schmalsten Strichs (Vorgabe: 3)

Vorgabe: 3

--height

Bildhöhe in Pixeln

--show-label, --no-show-label

die Klarschriftzeile unter den Strichen rendern

ean13

EAN-13 (1D, 12 oder 13 Ziffern)

pystrich ean13 [-h] [--text TEXT] [-o OUTPUT] [-t {auto,png,svg,eps}]
               [--dark-hex HEX] [--light-hex HEX] [--bar-width BAR_WIDTH]
               [--height HEIGHT]
Benannte Argumente
--text

12 oder 13 Ziffern (Vorgabe: aus stdin lesen)

-o, --output

Ausgabepfad; ‚-‘ oder weggelassen schreibt nach stdout

-t, --type

Mögliche Werte: auto, png, svg, eps

Ausgabeformat; ‚auto‘ ergibt sich aus dem -o-Dateinamen oder dem Ausgabekontext

Vorgabe: 'auto'

--dark-hex

dunkle Farbe (Vordergrund) als 3, 6 oder 8 Hexziffern; nur png/svg/eps

--light-hex

helle Farbe (Hintergrund) als 3, 6 oder 8 Hexziffern; nur png/svg/eps

--bar-width

Breite des schmalsten Strichs (Vorgabe: 3)

Vorgabe: 3

--height

Bildhöhe in Pixeln

itf

Interleaved 2 of 5 (1D, eine gerade Anzahl von Ziffern)

pystrich itf [-h] [--text TEXT] [-o OUTPUT] [-t {auto,png,svg,eps}]
             [--dark-hex HEX] [--light-hex HEX] [--bar-width BAR_WIDTH]
             [--height HEIGHT] [--bearer-width BEARER_WIDTH]
Benannte Argumente
--text

eine gerade Anzahl von Ziffern (Vorgabe: aus stdin lesen)

-o, --output

Ausgabepfad; ‚-‘ oder weggelassen schreibt nach stdout

-t, --type

Mögliche Werte: auto, png, svg, eps

Ausgabeformat; ‚auto‘ ergibt sich aus dem -o-Dateinamen oder dem Ausgabekontext

Vorgabe: 'auto'

--dark-hex

dunkle Farbe (Vordergrund) als 3, 6 oder 8 Hexziffern; nur png/svg/eps

--light-hex

helle Farbe (Hintergrund) als 3, 6 oder 8 Hexziffern; nur png/svg/eps

--bar-width

Breite des schmalsten Strichs (Vorgabe: 3)

Vorgabe: 3

--height

Bildhöhe in Pixeln

--bearer-width

Stärke der Linien eines Trägerbalkens, in Schmalstrichbreiten (Vorgabe: keine)

itf14

ITF-14 (1D, 13 oder 14 Ziffern, mit Trägerbalken)

pystrich itf14 [-h] [--text TEXT] [-o OUTPUT] [-t {auto,png,svg,eps}]
               [--dark-hex HEX] [--light-hex HEX] [--bar-width BAR_WIDTH]
               [--height HEIGHT] [--bearer-width BEARER_WIDTH]
Benannte Argumente
--text

13 oder 14 Ziffern (Vorgabe: aus stdin lesen)

-o, --output

Ausgabepfad; ‚-‘ oder weggelassen schreibt nach stdout

-t, --type

Mögliche Werte: auto, png, svg, eps

Ausgabeformat; ‚auto‘ ergibt sich aus dem -o-Dateinamen oder dem Ausgabekontext

Vorgabe: 'auto'

--dark-hex

dunkle Farbe (Vordergrund) als 3, 6 oder 8 Hexziffern; nur png/svg/eps

--light-hex

helle Farbe (Hintergrund) als 3, 6 oder 8 Hexziffern; nur png/svg/eps

--bar-width

Breite des schmalsten Strichs (Vorgabe: 3)

Vorgabe: 3

--height

Bildhöhe in Pixeln

--bearer-width

Stärke der Linien des Trägerbalkens, in Schmalstrichbreiten (Vorgabe: 4)

datamatrix

Data Matrix (2D)

pystrich datamatrix [-h] [--text TEXT] [-o OUTPUT]
                    [-t {auto,png,svg,eps,ascii,terminal,dxf}]
                    [--dark-hex HEX] [--light-hex HEX] [--cell-size CELL_SIZE]
                    [--inverse | --no-inverse]
                    [--mark-shape {square,circular,horizontal-runs}]
                    [--dxf-units {in,ft,mi,mm,cm,m,unspecified}]
                    [--quiet-zone QUIET_ZONE]
                    [--encoding {auto,ascii,iso-8859-1,utf-8}]
                    [--substitute-with-fnc1 CHAR]
                    [--symbol-shape {square,rectangular,auto}]
Benannte Argumente
--text

zu codierender Text (Vorgabe: aus stdin lesen)

-o, --output

Ausgabepfad; ‚-‘ oder weggelassen schreibt nach stdout

-t, --type

Mögliche Werte: auto, png, svg, eps, ascii, terminal, dxf

Ausgabeformat; ‚auto‘ ergibt sich aus dem -o-Dateinamen oder dem Ausgabekontext

Vorgabe: 'auto'

--dark-hex

dunkle Farbe (Vordergrund) als 3, 6 oder 8 Hexziffern; nur png/svg/eps

--light-hex

helle Farbe (Hintergrund) als 3, 6 oder 8 Hexziffern; nur png/svg/eps

--cell-size

Kantenlänge eines Moduls; muss für png/svg/eps eine ganze Zahl sein (Vorgabe: 5), für dxf sind Dezimalzahlen möglich (Vorgabe: 1.0)

--inverse, --no-inverse

invertieren (helle statt dunkler Zellen gefüllt); gilt für svg/eps/dxf

--mark-shape

Mögliche Werte: square, circular, horizontal-runs

wie gesetzte Zellen in der Vektorausgabe gezeichnet werden

--dxf-units

Mögliche Werte: in, ft, mi, mm, cm, m, unspecified

DXF-Einheiten (Vorgabe: mm); ‚unspecified‘ schreibt $INSUNITS=0

--quiet-zone

Breite der Ruhezone in Zellen (Vorgabe: 2)

Vorgabe: 2

--encoding

Mögliche Werte: auto, ascii, iso-8859-1, utf-8

DataMatrix-Zeichensatz (Vorgabe: auto wählt den schmalsten passenden)

Vorgabe: 'auto'

--substitute-with-fnc1

jedes Vorkommen von CHAR in --text durch ein FNC1-Codewort ersetzen

--symbol-shape

Mögliche Werte: square, rectangular, auto

Data-Matrix-Form (Vorgabe: square)

Vorgabe: 'square'

qrcode

QR-Code (2D)

pystrich qrcode [-h] [--text TEXT] [-o OUTPUT]
                [-t {auto,png,svg,eps,ascii,terminal,dxf}] [--dark-hex HEX]
                [--light-hex HEX] [--cell-size CELL_SIZE]
                [--inverse | --no-inverse]
                [--mark-shape {square,circular,horizontal-runs}]
                [--dxf-units {in,ft,mi,mm,cm,m,unspecified}] [--ecl {L,M,Q,H}]
Benannte Argumente
--text

zu codierender Text (Vorgabe: aus stdin lesen)

-o, --output

Ausgabepfad; ‚-‘ oder weggelassen schreibt nach stdout

-t, --type

Mögliche Werte: auto, png, svg, eps, ascii, terminal, dxf

Ausgabeformat; ‚auto‘ ergibt sich aus dem -o-Dateinamen oder dem Ausgabekontext

Vorgabe: 'auto'

--dark-hex

dunkle Farbe (Vordergrund) als 3, 6 oder 8 Hexziffern; nur png/svg/eps

--light-hex

helle Farbe (Hintergrund) als 3, 6 oder 8 Hexziffern; nur png/svg/eps

--cell-size

Kantenlänge eines Moduls; muss für png/svg/eps eine ganze Zahl sein (Vorgabe: 5), für dxf sind Dezimalzahlen möglich (Vorgabe: 1.0)

--inverse, --no-inverse

invertieren (helle statt dunkler Zellen gefüllt); gilt für svg/eps/dxf

--mark-shape

Mögliche Werte: square, circular, horizontal-runs

wie gesetzte Zellen in der Vektorausgabe gezeichnet werden

--dxf-units

Mögliche Werte: in, ft, mi, mm, cm, m, unspecified

DXF-Einheiten (Vorgabe: mm); ‚unspecified‘ schreibt $INSUNITS=0

--ecl

Mögliche Werte: L, M, Q, H

Fehlerkorrekturstufe (Vorgabe: M)

pdf417

PDF417 (gestapelt, 2D)

pystrich pdf417 [-h] [--text TEXT] [-o OUTPUT]
                [-t {auto,png,svg,eps,ascii,terminal,dxf}] [--dark-hex HEX]
                [--light-hex HEX] [--cell-size CELL_SIZE]
                [--inverse | --no-inverse]
                [--mark-shape {square,circular,horizontal-runs}]
                [--dxf-units {in,ft,mi,mm,cm,m,unspecified}]
                [--ecl {0,1,2,3,4,5,6,7,8}] [--columns N]
                [--row-height ROW_HEIGHT] [--quiet-zone QUIET_ZONE]
Benannte Argumente
--text

zu codierender Text (Vorgabe: aus stdin lesen)

-o, --output

Ausgabepfad; ‚-‘ oder weggelassen schreibt nach stdout

-t, --type

Mögliche Werte: auto, png, svg, eps, ascii, terminal, dxf

Ausgabeformat; ‚auto‘ ergibt sich aus dem -o-Dateinamen oder dem Ausgabekontext

Vorgabe: 'auto'

--dark-hex

dunkle Farbe (Vordergrund) als 3, 6 oder 8 Hexziffern; nur png/svg/eps

--light-hex

helle Farbe (Hintergrund) als 3, 6 oder 8 Hexziffern; nur png/svg/eps

--cell-size

Kantenlänge eines Moduls; muss für png/svg/eps eine ganze Zahl sein (Vorgabe: 5), für dxf sind Dezimalzahlen möglich (Vorgabe: 1.0)

--inverse, --no-inverse

invertieren (helle statt dunkler Zellen gefüllt); gilt für svg/eps/dxf

--mark-shape

Mögliche Werte: square, circular, horizontal-runs

wie gesetzte Zellen in der Vektorausgabe gezeichnet werden

--dxf-units

Mögliche Werte: in, ft, mi, mm, cm, m, unspecified

DXF-Einheiten (Vorgabe: mm); ‚unspecified‘ schreibt $INSUNITS=0

--ecl

Mögliche Werte: 0, 1, 2, 3, 4, 5, 6, 7, 8

Fehlerkorrekturstufe 0-8 (Vorgabe: aus der Datenlänge gewählt)

--columns

Mögliche Werte: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30

Datenspalten 1-30 (Vorgabe: flächenminimales Layout)

--row-height

Matrixzeilen pro Codewort-Zeile (Vorgabe: 3)

Vorgabe: 3

--quiet-zone

Breite der Ruhezone in Modulen (Vorgabe: 2)

Vorgabe: 2

aztec

Aztec-Code (2D)

pystrich aztec [-h] [--text TEXT] [-o OUTPUT]
               [-t {auto,png,svg,eps,ascii,terminal,dxf}] [--dark-hex HEX]
               [--light-hex HEX] [--cell-size CELL_SIZE]
               [--inverse | --no-inverse]
               [--mark-shape {square,circular,horizontal-runs}]
               [--dxf-units {in,ft,mi,mm,cm,m,unspecified}] [--ecc PCT]
               [--symbol-kind {auto,compact,full}] [--layers LAYERS]
               [--quiet-zone QUIET_ZONE]
Benannte Argumente
--text

zu codierender Text (Vorgabe: aus stdin lesen)

-o, --output

Ausgabepfad; ‚-‘ oder weggelassen schreibt nach stdout

-t, --type

Mögliche Werte: auto, png, svg, eps, ascii, terminal, dxf

Ausgabeformat; ‚auto‘ ergibt sich aus dem -o-Dateinamen oder dem Ausgabekontext

Vorgabe: 'auto'

--dark-hex

dunkle Farbe (Vordergrund) als 3, 6 oder 8 Hexziffern; nur png/svg/eps

--light-hex

helle Farbe (Hintergrund) als 3, 6 oder 8 Hexziffern; nur png/svg/eps

--cell-size

Kantenlänge eines Moduls; muss für png/svg/eps eine ganze Zahl sein (Vorgabe: 5), für dxf sind Dezimalzahlen möglich (Vorgabe: 1.0)

--inverse, --no-inverse

invertieren (helle statt dunkler Zellen gefüllt); gilt für svg/eps/dxf

--mark-shape

Mögliche Werte: square, circular, horizontal-runs

wie gesetzte Zellen in der Vektorausgabe gezeichnet werden

--dxf-units

Mögliche Werte: in, ft, mi, mm, cm, m, unspecified

DXF-Einheiten (Vorgabe: mm); ‚unspecified‘ schreibt $INSUNITS=0

--ecc

Fehlerkorrektur-Prozentsatz 5..95 (Vorgabe: 23)

Vorgabe: 23

--symbol-kind

Mögliche Werte: auto, compact, full

Symboltyp (Vorgabe: auto wählt den kleinsten passenden)

Vorgabe: 'auto'

--layers

Anzahl der Datenschichten; erfordert --symbol-kind compact oder full

--quiet-zone

Breite der Ruhezone in Modulen (Vorgabe: 2)

Vorgabe: 2

Automatische Formaterkennung

Das Ausgabeformat wird automatisch aus dem Dateinamen bei -o erkannt (.png, .svg, .eps, .dxf); ohne -o ist die Vorgabe terminal für 2D-Formate, wenn stdout ein TTY ist. Weitergeleitete oder umgeleitete Ausgabe ohne explizites -t wird abgelehnt, um zu vermeiden, dass versehentlich Binärdaten an das nächste Werkzeug ausgegeben werden.

GS1 Data Matrix aus der Shell

GS1 Data Matrix verwendet ASCII mit FNC1-Markern, die Application Identifier und ihre Werte trennen. Mit --substitute-with-fnc1 lässt sich diese Eingabe aus einer shell-freundlichen Zeichenkette aufbauen:

$ pystrich datamatrix \
    --text "|0105050070007664" \
    --substitute-with-fnc1 "|" \
    -o gs1.png

Siehe Data Matrix für die vollständige Erörterung der Codierung.

Einschränkungen

Das CLI stellt nicht jede Stellschraube der Python-API bereit. Greifen Sie für 1D-Beschriftungsschriften, benutzerdefinierte Ränder, das first_digit_y_offset von EAN-13 oder die veraltete DataMatrix-compat-Codierung zur Python-API.

API

Kommandozeilen-Schnittstelle für pyStrich.

Führen Sie pystrich --help für die Verwendung aus. Jeder Unterbefehl entspricht einem Barcode-Format und verwendet die passende Encoder-Klasse.

class Format[Quellcode]

Bases: ABC

Abstraktes Barcode-Format. Blatt-Unterklassen werden in FORMATS registriert.

class OneDFormat[Quellcode]

Bases: Format

class TwoDFormat[Quellcode]

Bases: Format

class Code39[Quellcode]

Bases: OneDFormat

class Code128[Quellcode]

Bases: OneDFormat

class EAN13[Quellcode]

Bases: OneDFormat

class ITF[Quellcode]

Bases: OneDFormat

class ITF14[Quellcode]

Bases: OneDFormat

class DataMatrix[Quellcode]

Bases: TwoDFormat

class QRCode[Quellcode]

Bases: TwoDFormat

class PDF417[Quellcode]

Bases: TwoDFormat

class Aztec[Quellcode]

Bases: TwoDFormat

main(argv: list[str] | None = None) int[Quellcode]

Führt das CLI aus; gibt den Exit-Code des Prozesses zurück.