barcode-pao-wasm
クロスプラットフォーム バーコード生成ライブラリ for Python(WebAssembly版)
概要
barcode-pao-wasm は、WebAssembly(WASM)を使用してバーコードを生成するPythonパッケージです。Node.jsを介してWASMモジュールを実行するため、ネイティブコンパイルが不要でクロスプラットフォームで動作します。
必要条件
- Python 3.8以上
- Node.js (v14以上推奨)
Node.jsがシステムにインストールされている必要があります。
# Node.jsのインストール確認
node --version
対応バーコード(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-wasm
使用例
QRコード生成
from barcode_pao_wasm import QR
# QRコードインスタンスを作成
qr = QR()
# エラー訂正レベルを設定(L/M/Q/H)
qr.set_error_correction_level("H")
# Base64エンコードされた画像を取得
base64_image = qr.draw("https://example.com", 200)
# ファイルに保存
qr.draw_to_file("Hello, World!", 200, "qrcode.png")
Code128バーコード生成
from barcode_pao_wasm import Code128
# Code128インスタンスを作成
code128 = Code128()
# テキスト表示を有効化
code128.set_show_text(True)
# 出力フォーマットをSVGに設定
code128.set_output_format("svg")
# バーコード生成
svg_data = code128.draw("ABC-12345", 300, 100)
色のカスタマイズ
from barcode_pao_wasm 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_wasm import GS1_128
gs1 = GS1_128()
gs1.set_show_text(True)
# 標準料金代理収納用バーコード
convenience_code = "9101234567890123456789012345678901234567890123"
base64_image = gs1.draw_convenience(convenience_code, 400, 100)
郵便カスタマバーコード
from barcode_pao_wasm import YubinCustomer
yubin = YubinCustomer()
# 郵便番号 + 住所表示番号
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_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ベクター画像 |
Native版との違い
| 項目 | barcode-pao-wasm | barcode-pao-native |
|---|---|---|
| 実行速度 | 遅い(Node.jsプロセス起動あり) | 高速 |
| インストール | 簡単(コンパイル不要) | コンパイラ必要 |
| 依存関係 | Node.js必須 | なし |
| クロスプラットフォーム | 優秀 | プラットフォーム依存 |
| 用途 | 開発・テスト、少量生成 | 本番環境、大量生成 |
トラブルシューティング
Node.jsが見つからないエラー
WasmBarcodeError: Node.js is required for WASM barcode generation.
Node.jsをインストールしてください:
- Windows: https://nodejs.org/ からインストーラをダウンロード
- macOS:
brew install node - Linux:
apt install nodejsまたはyum install nodejs
タイムアウトエラー
WasmBarcodeError: Barcode generation timed out
複雑なバーコード生成や大量データの場合に発生する可能性があります。
本番環境では barcode-pao-native の使用を推奨します。
ライセンス
MIT License
関連パッケージ
- barcode-pao-native - C++ネイティブ版(高速)
Metadata
Release files for barcode-pao-wasm 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| barcode_pao_wasm-1.2.0.tar.gz | 1.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| barcode_pao_wasm-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.3 MB
Release files / barcode_pao_wasm-1.2.0.tar.gz
| Download URL | barcode_pao_wasm-1.2.0.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b0fa87051c7f25fa3697b3e5a2f204c668ebb162e3c42517ba7bbd43838bb92c
|
|
BLAKE2b-256 checksum How to use checksums |
debb8c86fdb2167efee3db49bee4b059758478fd01f531fc23219cc079def29d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.0
|
Release files / barcode_pao_wasm-1.2.0-py3-none-any.whl
| Download URL | barcode_pao_wasm-1.2.0-py3-none-any.whl |
|---|---|
| Size | 1.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f3f720091fd7e707032ed88718a6ff4309eb9f91e8f45daeed248d860e1251e4
|
|
BLAKE2b-256 checksum How to use checksums |
02c6e60365d0856d5f93bc8dfe36f99d7eb22a9caf882450da8109ffd0ed51f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.0
|