High-performance barcode generation library for Python (Native C++ Extension)
Project description
barcode-pao-native
高性能バーコード生成ライブラリ for Python(C++ネイティブ拡張版)
概要
barcode-pao-native は、C++で実装されたバーコードライブラリをPythonから利用できるようにしたパッケージです。pybind11を使用してC++コードを直接呼び出すため、高速なバーコード生成が可能です。
対応バーコード(18種)
1次元バーコード(11種)
- Code39 - 英数字対応の汎用バーコード
- Code93 - Code39の拡張版
- Code128 - 全ASCII文字対応の高密度バーコード
- GS1-128 - 物流・流通向けバーコード(コンビニ収納代行対応)
- NW-7 (Codabar) - 血液銀行・宅配便向けバーコード
- Matrix 2 of 5 - 工業用バーコード
- NEC 2 of 5 - NECが開発した2 of 5系バーコード
- JAN-8 - 日本の商品コード(8桁)
- JAN-13 - 日本の商品コード(13桁)
- UPC-A - 北米の商品コード(12桁)
- UPC-E - UPC-Aの短縮版(8桁)
GS1 DataBar(3種)
- GS1 DataBar 14 - 標準型(オムニ/スタック対応)
- GS1 DataBar Limited - 限定型
- GS1 DataBar Expanded - 拡張型(スタック対応)
2次元バーコード(3種)
- QRコード - 日本発の2次元コード
- DataMatrix - 工業用途の2次元コード
- PDF417 - 運転免許証等で使用される2次元コード
特殊バーコード(1種)
- 郵便カスタマバーコード - 日本郵便の住所表示バーコード
インストール
pip install barcode-pao-native
使用例
QRコード生成
from barcode_pao_native import QR
# QRコードインスタンスを作成
qr = QR()
# エラー訂正レベルを設定(L/M/Q/H)
qr.set_error_correction_level("H")
# 日本語をエンコードする場合
qr.set_string_encoding("shift-jis")
# Base64エンコードされた画像を取得
base64_image = qr.draw("https://example.com", 200)
# バイナリデータとして取得
image_bytes = qr.draw_bytes("Hello, World!", 200)
# ファイルに保存
qr.draw_to_file("Hello, World!", 200, "qrcode.png")
Code128バーコード生成
from barcode_pao_native import Code128
# Code128インスタンスを作成
code128 = Code128()
# テキスト表示を有効化
code128.set_show_text(True)
# 出力フォーマットをSVGに設定
code128.set_output_format("svg")
# コードモードを設定(AUTO/A/B/C)
code128.set_code_mode("AUTO")
# バーコード生成
svg_data = code128.draw("ABC-12345", 300, 100)
色のカスタマイズ
from barcode_pao_native import Code39
code39 = Code39()
# 前景色(バーの色)をRGBAで設定
code39.set_foreground_color(0, 0, 128, 255) # 紺色
# 背景色をRGBAで設定
code39.set_background_color(255, 255, 200, 255) # 薄黄色
base64_image = code39.draw("12345", 200, 80)
GS1-128 コンビニ収納代行バーコード
from barcode_pao_native import GS1_128
gs1 = GS1_128()
gs1.set_show_text(True)
# 標準料金代理収納用バーコード
# 43桁または44桁の数字を指定
convenience_code = "9101234567890123456789012345678901234567890123"
base64_image = gs1.draw_convenience(convenience_code, 400, 100)
郵便カスタマバーコード
from barcode_pao_native import YubinCustomer
yubin = YubinCustomer()
# 郵便番号 + 住所表示番号
# 例: 〒100-0001 東京都千代田区1-2-3
code = "1000001-1-2-3"
base64_image = yubin.draw(code, 50) # 高さのみ指定(幅は自動)
API リファレンス
共通メソッド(全バーコードクラス)
| メソッド | 説明 |
|---|---|
set_output_format(format) |
出力フォーマットを設定("png", "jpg", "gif", "svg") |
set_foreground_color(r, g, b, a=255) |
前景色(バーの色)を設定 |
set_background_color(r, g, b, a=255) |
背景色を設定 |
draw(code, width, height) |
Base64エンコードされた画像を返す |
draw_bytes(code, width, height) |
バイナリデータを返す |
draw_to_file(code, width, height, filepath) |
ファイルに保存 |
1次元バーコード固有メソッド
| メソッド | 説明 |
|---|---|
set_show_text(show) |
バーコード下のテキスト表示 |
set_text_font_scale(scale) |
テキストのフォントサイズスケール |
set_text_gap(scale) |
バーとテキストの間隔 |
set_fit_width(fit) |
幅に合わせてバーを調整 |
set_px_adjust_black(adjust) |
黒バーのピクセル調整 |
set_px_adjust_white(adjust) |
白バーのピクセル調整 |
2次元バーコード固有メソッド
| クラス | メソッド | 説明 |
|---|---|---|
| QR | set_error_correction_level(level) |
エラー訂正レベル(L/M/Q/H) |
| QR | set_version(version) |
バージョン(0=自動, 1-40) |
| QR | set_encode_mode(mode) |
エンコードモード(NUMERIC/ALPHANUMERIC/BYTE/KANJI) |
| DataMatrix | set_code_size(size) |
シンボルサイズ("AUTO", "10x10"など) |
| DataMatrix | set_encode_scheme(scheme) |
エンコードスキーム(AUTO/ASCII/C40/TEXT/X12/EDIFACT/BASE256) |
| PDF417 | set_error_level(level) |
エラー訂正レベル(-1=自動, 0-8) |
| PDF417 | set_columns(columns) |
列数 |
| PDF417 | set_rows(rows) |
行数 |
出力フォーマット
| フォーマット | 説明 |
|---|---|
png |
PNG画像(デフォルト) |
jpg / jpeg |
JPEG画像 |
gif |
GIF画像 |
svg |
SVGベクター画像 |
動作環境
- Python 3.8以上
- Windows / macOS / Linux
ライセンス
MIT License
関連パッケージ
- barcode-pao-wasm - WebAssembly版(ポータブル)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
barcode_pao-1.0.1.tar.gz
(1.6 MB
view details)
File details
Details for the file barcode_pao-1.0.1.tar.gz.
File metadata
- Download URL: barcode_pao-1.0.1.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c52fd7e2eb91fdc16133e56897a16e191d2f3440a388b08175c278b9b00144d5
|
|
| MD5 |
ca7911b39fbdfa24fef49c9d4361b200
|
|
| BLAKE2b-256 |
b54e69164bb74f4a37af8ef63b1a831b457817e899e385566877d79edfa1b575
|