Skip to main content

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

関連パッケージ

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)

Table of built distributions (wheels) for barcode-pao 1.2.0
File
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

Release history Release notifications | RSS feed

This release

1.2.0 This release

5 release files

1.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page