クロスプラットフォーム バーコード生成ライブラリ for Flutter(C++ FFI版)
barcode_pao は、C++バーコードエンジンを dart:ffi でバインディングした高速バーコード生成Flutterプラグインです。ネイティブコンパイル済みライブラリを同梱しているため、追加のコンパイル不要で動作します。
- 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 14 - 標準型(オムニ/スタック対応)
- GS1 DataBar Limited - 限定型
- GS1 DataBar Expanded - 拡張型(スタック対応)
- QRコード - 日本発の2次元コード
- DataMatrix - 工業用途の2次元コード
- PDF417 - 運転免許証等で使用される2次元コード
- 郵便カスタマバーコード - 日本郵便の住所表示バーコード
flutter pub add barcode_pao
import 'package:barcode_pao/barcode_pao.dart';
// QRコードインスタンスを作成
final qr = QR();
// エラー訂正レベルを設定(L/M/Q/H)
qr.setErrorCorrectionLevel('H');
// Base64エンコードされた画像を取得
final base64Image = qr.draw('https://example.com', 200);
// リソースを解放
qr.dispose();
import 'package:barcode_pao/barcode_pao.dart';
// Code128インスタンスを作成
final code128 = Code128();
// テキスト表示を有効化
code128.setShowText(true);
// 出力フォーマットをSVGに設定
code128.setOutputFormat('svg');
// バーコード生成
final svgData = code128.draw('ABC-12345', 300, 100);
// リソースを解放
code128.dispose();
import 'package:barcode_pao/barcode_pao.dart';
final code39 = Code39();
// 前景色(バーの色)をRGBAで設定
code39.setForegroundColor(0, 0, 128); // 紺色
// 背景色をRGBAで設定
code39.setBackgroundColor(255, 255, 200); // 薄黄色
final base64Image = code39.draw('12345', 200, 80);
code39.dispose();
import 'package:barcode_pao/barcode_pao.dart';
final gs1 = GS1_128();
gs1.setShowText(true);
// 標準料金代理収納用バーコード
final convenienceCode = '9101234567890123456789012345678901234567890123';
final base64Image = gs1.drawConvenience(convenienceCode, 400, 100);
gs1.dispose();
import 'package:barcode_pao/barcode_pao.dart';
final yubin = YubinCustomer();
// 郵便番号 + 住所表示番号
final code = '1000001-1-2-3';
final base64Image = yubin.draw(code, 50); // 高さのみ指定
yubin.dispose();
| メソッド |
説明 |
setOutputFormat(format) |
出力フォーマットを設定("png", "jpg", "svg") |
setForegroundColor(r, g, b, [a]) |
前景色(バーの色)を設定 |
setBackgroundColor(r, g, b, [a]) |
背景色を設定 |
dispose() |
ネイティブリソースを解放(必須) |
| メソッド |
説明 |
setShowText(show) |
バーコード下のテキスト表示 |
setTextFontScale(scale) |
テキストのフォントサイズスケール |
setTextGap(scale) |
バーとテキストの間隔 |
setFitWidth(fit) |
幅に合わせてバーを調整 |
setPxAdjustBlack(adjust) |
黒バーのピクセル調整 |
setPxAdjustWhite(adjust) |
白バーのピクセル調整 |
draw(code, width, height) |
Base64またはSVG文字列を返す |
| クラス |
メソッド |
説明 |
| QR |
setErrorCorrectionLevel(level) |
エラー訂正レベル(L/M/Q/H) |
| QR |
setVersion(version) |
バージョン(0=自動, 1-40) |
| QR |
setEncodeMode(mode) |
エンコードモード(NUMERIC/ALPHANUMERIC/BYTE/KANJI) |
| DataMatrix |
setCodeSize(size) |
シンボルサイズ("AUTO", "10x10"など) |
| DataMatrix |
setEncodeScheme(scheme) |
エンコードスキーム(AUTO/ASCII/C40/TEXT/X12/EDIFACT/BASE256) |
| PDF417 |
setErrorLevel(level) |
エラー訂正レベル(-1=自動, 0-8) |
| PDF417 |
setColumns(columns) |
列数 |
| PDF417 |
setRows(rows) |
行数 |
| フォーマット |
説明 |
png |
PNG画像(デフォルト) |
jpg / jpeg |
JPEG画像 |
svg |
SVGベクター画像 |
| 項目 |
barcode_pao (FFI) |
barcode_pao_wasm |
| 実行速度 |
高速(ネイティブC++) |
やや遅い(WASM) |
| 対応プラットフォーム |
Windows/macOS/Linux/iOS/Android |
Web専用 |
| リソース管理 |
dispose() 必須 |
不要 |
| 用途 |
ネイティブアプリ |
Flutter Web |
MIT License