barcode-generator について
barcode-generator は、一般的な一次元バーコードを生成・検証する Python スキルとコマンドラインツールです。単一コードと CSV の一括処理に対応し、出力画像を調整できます。
主な機能
- 01Code128、EAN、UPC、ISBN などに対応
- 02PNG、SVG、PDF で出力
- 03サイズ、色、テキストの調整
- 04CSV からの一括生成
- 05形式検証とチェックデジット計算
活用シーン
- 01小売商品のラベル作成
- 02CSV からの在庫タグ生成
- 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 ファイル | - |
--column | CSV 内のコード列 | code |
--output-dir | 出力ディレクトリ | . |
--validate | コードを検証する | - |
対応形式
| 形式 | 長さ | 文字 | 用途 |
|---|---|---|---|
code128 | 可変 | ASCII | 汎用 |
ean13 | 13 | 数字 | 小売商品 |
ean8 | 8 | 数字 | 小型商品 |
upca | 12 | 数字 | 米国の小売 |
code39 | 可変 | A-Z、0-9、記号 | 産業用途 |
itf | 偶数 | 数字 | 配送 |
isbn13 | 13 | 数字 | 書籍 |
isbn10 | 10 | 数字 + 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 対応