Barcode Generator
Generate barcodes in various formats for retail, inventory, and identification. Supports 1D barcodes (Code128, EAN, UPC) and batch generation from CSV.
Quick Start from scripts.barcode_gen import BarcodeGenerator
Generate barcode
gen = BarcodeGenerator() gen.generate("123456789012", format="ean13", output="barcode.png")
Code128 (variable length)
gen.generate("ABC-12345", format="code128", output="product.png")
Batch from CSV
gen.batch_generate("products.csv", code_column="sku", output_dir="./barcodes")
Features Multiple Formats: Code128, EAN13, EAN8, UPC-A, Code39, ITF, ISBN Output Formats: PNG, SVG, PDF Customization: Size, colors, text display Batch Generation: From CSV files Validation: Check digit calculation and verification API Reference Basic Generation gen = BarcodeGenerator()
Generate with auto-format detection
gen.generate("123456789012", output="barcode.png")
Specific format
gen.generate("12345678", format="ean8", output="barcode.png")
Customization gen.generate( "ABC123", format="code128", output="barcode.png", width=300, # Image width height=150, # Image height show_text=True, # Show code below barcode font_size=12, # Text size foreground="black", # Bar color background="white" # Background color )
Batch Generation
From CSV
gen.batch_generate( "products.csv", code_column="sku", format="code128", output_dir="./barcodes", filename_column="product_name" # Use product name as filename )
From list
codes = ["ABC001", "ABC002", "ABC003"] gen.batch_generate_list(codes, format="code128", output_dir="./barcodes")
Validation
Validate barcode format
is_valid = gen.validate("5901234123457", format="ean13")
Calculate check digit
check = gen.calculate_check_digit("590123412345", format="ean13")
Returns: 7
Generate with auto check digit
gen.generate("590123412345", format="ean13", auto_check_digit=True)
Output Formats
PNG (default)
gen.generate("123", format="code128", output="barcode.png")
SVG (vector)
gen.generate("123", format="code128", output="barcode.svg")
gen.generate("123", format="code128", output="barcode.pdf")
CLI Usage
Generate single barcode
python barcode_gen.py --code "123456789012" --format ean13 --output barcode.png
Code128
python barcode_gen.py --code "ABC-12345" --format code128 --output product.png
Custom size
python barcode_gen.py --code "12345" --format code39 --width 400 --height 200
Batch from CSV
python barcode_gen.py --batch products.csv --column sku --format code128 --output-dir ./barcodes
Validate
python barcode_gen.py --validate "5901234123457" --format ean13
CLI Arguments Argument Description Default --code Code to encode - --format Barcode format code128 --output Output file - --width Image width 300 --height Image height 150 --no-text Hide code text False --batch CSV file for batch - --column Code column in CSV code --output-dir Output directory . --validate Validate code - Supported Formats Format Length Characters Use Case code128 Variable ASCII General purpose ean13 13 Digits Retail products ean8 8 Digits Small products upca 12 Digits US retail code39 Variable A-Z, 0-9, symbols Industrial itf Even Digits Shipping isbn13 13 Digits Books isbn10 10 Digits + X Books (legacy) Examples Product Label gen = BarcodeGenerator()
gen.generate( "5901234123457", format="ean13", output="product_barcode.png", width=250, height=100, show_text=True )
Inventory Tags gen = BarcodeGenerator()
inventory = [ {"sku": "INV-001", "name": "Widget A"}, {"sku": "INV-002", "name": "Widget B"}, {"sku": "INV-003", "name": "Widget C"} ]
for item in inventory: gen.generate( item["sku"], format="code128", output=f"./tags/{item['name']}.png" )
Book ISBN gen = BarcodeGenerator()
ISBN-13 barcode
gen.generate( "9780134685991", format="isbn13", output="book_barcode.png" )
Batch Product Labels gen = BarcodeGenerator()
products.csv:
sku,product_name,price
123456789012,Widget A,9.99
234567890123,Widget B,14.99
gen.batch_generate( "products.csv", code_column="sku", format="ean13", output_dir="./product_labels", filename_column="product_name" )
Check Digit Calculation
The generator can automatically calculate and append check digits:
gen = BarcodeGenerator()
EAN-13: 12 digits + 1 check digit
gen.generate("590123412345", format="ean13", auto_check_digit=True)
Generates barcode for "5901234123457"
Manually calculate
check = gen.calculate_check_digit("590123412345", format="ean13") print(f"Check digit: {check}") # 7
Dependencies python-barcode>=0.15.0 Pillow>=10.0.0
Limitations Some formats have strict length requirements Characters must match format specifications PDF output may require additional fonts Very long codes may not scan well at small sizes