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-URL: Homepage, https://www.pao.ac/barcode.python/ Project-URL: Purchase, https://www.pao.ac/barcode.python/buy.html
Metadata
Release files for barcode-pao 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| barcode_pao-1.2.0-cp313-cp313-win_amd64.whl | CPython 3.13 | CPython 3.13 | Windows x86-64 | Details |
| barcode_pao-1.2.0-cp312-cp312-win_amd64.whl | CPython 3.12 | CPython 3.12 | Windows x86-64 | Details |
| barcode_pao-1.2.0-cp311-cp311-win_amd64.whl | CPython 3.11 | CPython 3.11 | Windows x86-64 | Details |
| barcode_pao-1.2.0-cp310-cp310-win_amd64.whl | CPython 3.10 | CPython 3.10 | Windows x86-64 | Details |
| barcode_pao-1.2.0-cp39-cp39-win_amd64.whl | CPython 3.9 | CPython 3.9 | Windows x86-64 | Details |
Total release size: 10.6 MB
Release files / barcode_pao-1.2.0-cp313-cp313-win_amd64.whl
| Download URL | barcode_pao-1.2.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
251af641aaa2a7a15b4fa5699c28a08b46654b4f6903e1a0c5ee2df2caafc6b0
|
|
BLAKE2b-256 checksum How to use checksums |
a193f1046bb89b2ddd944a7c6d3234dfd86661bd96fb7c0bf321a69a3aa2a8ad
|
| 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-1.2.0-cp312-cp312-win_amd64.whl
| Download URL | barcode_pao-1.2.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
65451ab53c9f4e5b3c7470d9b3a635f202ded4ae1c40a6cec49d246918fdd658
|
|
BLAKE2b-256 checksum How to use checksums |
427f72583a8ac15649f7dd3f60e92afcf4eee506768a85ccefa357d27af7cabf
|
| 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-1.2.0-cp311-cp311-win_amd64.whl
| Download URL | barcode_pao-1.2.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a4c884816071e9f67c2387e666d642f79f1cce3b396ae50b387ad72838492fca
|
|
BLAKE2b-256 checksum How to use checksums |
9289987424cc7ffd6ef99707beb62d2a8cedddbbe760f7bcb7e88c437afb89da
|
| 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-1.2.0-cp310-cp310-win_amd64.whl
| Download URL | barcode_pao-1.2.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
426574256b33205c3f5f1822f2250598b98a293c6aae2a9bf23633c570003e6f
|
|
BLAKE2b-256 checksum How to use checksums |
6ba39c9f5f36a183be685653e13da0734548a0c4a58d37adc30100936ed68528
|
| 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-1.2.0-cp39-cp39-win_amd64.whl
| Download URL | barcode_pao-1.2.0-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f760de1c3a1a4cb697e38c0eae3849c2968d2f1dfa5ac057b5e7036dd7834dd9
|
|
BLAKE2b-256 checksum How to use checksums |
19eaa14b1c7de8f4e25cbbf55042f9b12d5e566172659818bab5ab06ae9354be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.0
|