mcpField
B
barcode-generator

barcode-generator

github.com/dkyazzentwatwa其他12465 次安装29 周前更新
代码仓库

关于 barcode-generator

barcode-generator 是用于生成和校验常见一维条码的 Python 技能和命令行工具,支持单个条码及 CSV 批量处理,并可配置输出图像。

主要功能

  1. 01支持 Code128、EAN、UPC、ISBN 等格式
  2. 02输出 PNG、SVG 和 PDF
  3. 03自定义尺寸、颜色和文本
  4. 04从 CSV 批量生成
  5. 05格式校验与校验位计算

适用场景

  1. 01制作零售商品标签
  2. 02从 CSV 生成库存标签
  3. 03为书籍生成 ISBN 条码

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dkyazzentwatwa/chatgpt-skills --skill barcode-generator

安装后在 Claude Code 中输入/barcode-generator确认已加载。

附带文件scripts/barcode_gen.pyscripts/requirements.txt

详细介绍

条码生成器

生成适用于零售、库存管理和标识的多种格式条码。支持 1D 条码(Code128、EAN、UPC)以及从 CSV 批量生成。

快速开始

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")

功能

  • 多种格式:Code128、EAN13、EAN8、UPC-A、Code39、ITF、ISBN
  • 输出格式:PNG、SVG、PDF
  • 自定义选项:尺寸、颜色、文本显示
  • 批量生成:从 CSV 文件生成
  • 验证:校验位计算与验证

API 参考

基本生成
gen = BarcodeGenerator()

# Generate with auto-format detection
gen.generate("123456789012", output="barcode.png")

# Specific format
gen.generate("12345678", format="ean8", output="barcode.png")
自定义
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
)
批量生成
# 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")
验证
# 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)
输出格式
# PNG (default)
gen.generate("123", format="code128", output="barcode.png")

# SVG (vector)
gen.generate("123", format="code128", output="barcode.svg")

# PDF
gen.generate("123", format="code128", output="barcode.pdf")

CLI 用法

# 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 参数
参数描述默认值
--code要编码的代码-
--format条码格式code128
--output输出文件-
--width图像宽度300
--height图像高度150
--no-text隐藏代码文本False
--batch用于批量处理的 CSV 文件-
--columnCSV 中的代码列code
--output-dir输出目录.
--validate验证代码-

支持的格式

格式长度字符使用场景
code128可变ASCII通用
ean1313数字零售商品
ean88数字小型商品
upca12数字美国零售
code39可变A-Z、0-9、符号工业用途
itf偶数数字运输
isbn1313数字图书
isbn1010数字 + X图书(旧版)

示例

商品标签
gen = BarcodeGenerator()

gen.generate(
    "5901234123457",
    format="ean13",
    output="product_barcode.png",
    width=250,
    height=100,
    show_text=True
)
库存标签
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"
    )
图书 ISBN
gen = BarcodeGenerator()

# ISBN-13 barcode
gen.generate(
    "9780134685991",
    format="isbn13",
    output="book_barcode.png"
)
批量商品标签
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"
)

校验位计算

生成器可以自动计算并附加校验位:

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

依赖项

python-barcode>=0.15.0
Pillow>=10.0.0

限制

  • 某些格式对长度有严格要求
  • 字符必须符合格式规范
  • PDF 输出可能需要额外字体
  • 代码过长时,在较小尺寸下可能不易扫描

评论

支持 Markdown