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 Bases: "ABC" Abstraktes Barcode-Format. Blatt-Unterklassen werden in FORMATS registriert. class OneDFormat Bases: "Format" class TwoDFormat Bases: "Format" class Code39 Bases: "OneDFormat" class Code128 Bases: "OneDFormat" class EAN13 Bases: "OneDFormat" class ITF Bases: "OneDFormat" class ITF14 Bases: "OneDFormat" class DataMatrix Bases: "TwoDFormat" class QRCode Bases: "TwoDFormat" class PDF417 Bases: "TwoDFormat" class Aztec Bases: "TwoDFormat" main(argv: list[str] | None = None) -> int Führt das CLI aus; gibt den Exit-Code des Prozesses zurück.