Skip to content

バーコード

バーコードモジュール(BarcodeGeneratorBarcodeRenderer)は、1Dおよび2DバーコードをPDFに直接レンダリングします。バーコードタイプは BarcodeType および Barcode2DType 列挙型で定義されています。すべてのメソッドは static を返すため、メソッドチェーンが可能です。

基本的な使用例

php
use Yeeefang\TcpdfNext\Core\Document;

$pdf = Document::create()
    ->addPage()
    ->setFont('Helvetica', '', 12)
    ->cell(0, 10, 'Product Barcodes', newLine: true)

    // 1D: EAN-13
    ->write1DBarcode('4006381333931', 'EAN13', 10, 30, 80, 30, 0.4, [
        'border' => false,
        'text'   => true,
        'fgcolor' => [0, 0, 0],
    ])

    // 1D: Code 128
    ->write1DBarcode('TCPDF-NEXT', 'C128', 10, 70, 80, 20, 0.4)

    // 2D: QR Code
    ->write2DBarcode('https://tcpdf-next.dev', 'QRCODE,H', 10, 100, 50, 50, [
        'fgcolor' => [0, 0, 0],
        'bgcolor' => [255, 255, 255],
    ])

    // 2D: DataMatrix
    ->write2DBarcode('Hello DataMatrix', 'DATAMATRIX', 70, 100, 40, 40);

1Dバーコード

php
$pdf->write1DBarcode(
    string $code,           // エンコードするデータ
    string $type,           // バーコードタイプの文字列
    float  $x,              // X座標
    float  $y,              // Y座標
    float  $w,              // 幅
    float  $h,              // 高さ
    float  $xres = 0.4,    // 最も細いバーの幅(ユーザー単位)
    array  $style = [],     // スタイルオプション
);

対応する1Dタイプ(BarcodeType)

タイプ文字列列挙値説明
C39CODE_39Code 39
C93CODE_93Code 93
C128CODE_128Code 128(自動モード)
C128ACODE_128ACode 128 サブセットA
C128BCODE_128BCode 128 サブセットB
C128CCODE_128CCode 128 サブセットC
EAN8EAN_8EAN-8
EAN13EAN_13EAN-13
UPCAUPC_AUPC-A
UPCEUPC_EUPC-E
I25I25インターリーブド 2 of 5
S25S25スタンダード 2 of 5
CODABARCODABARCodabar
CODE11CODE_11Code 11
MSIMSIMSI Plessey
POSTNETPOSTNETPOSTNET(米国郵便)
PLANETPLANETPLANET(米国郵便)
IMBIMBIntelligent Mail Barcode
PHARMAPHARMACODEPharmacode

2Dバーコード

php
$pdf->write2DBarcode(
    string $code,           // エンコードするデータ
    string $type,           // バーコードタイプの文字列
    float  $x,              // X座標
    float  $y,              // Y座標
    float  $w,              // 幅
    float  $h,              // 高さ
    array  $style = [],     // スタイルオプション
);

対応する2Dタイプ(Barcode2DType)

タイプ文字列列挙値説明
QRCODE,LQR_CODEQRコード — 低誤り訂正(約7%)
QRCODE,MQR_CODEQRコード — 中誤り訂正(約15%)
QRCODE,QQR_CODEQRコード — 四分位誤り訂正(約25%)
QRCODE,HQR_CODEQRコード — 高誤り訂正(約30%)
DATAMATRIXDATAMATRIXDataMatrix
PDF417PDF417PDF417

スタイルオプション

$style 配列は、1Dおよび2Dメソッドの両方でバーコードの外観を制御します:

キー説明
borderboolバーコードの周囲に枠線を描画
paddingfloat|array枠線内側のパディング
fgcolorarray前景(バー)色を [r, g, b] で指定
bgcolorarray背景色を [r, g, b] で指定
textbool1Dバーコードの下に人間が読めるテキストを表示
stretchboolバーコードを指定幅いっぱいに引き伸ばす

製品ラベルの例

php
use Yeeefang\TcpdfNext\Core\Document;

$pdf = Document::create()
    ->addPage()
    ->setFont('Helvetica', 'B', 14)
    ->cell(0, 10, 'Widget Pro X1', newLine: true)
    ->setFont('Helvetica', '', 10)
    ->cell(0, 8, 'SKU: WPX1-2026', newLine: true)
    ->write1DBarcode('4006381333931', 'EAN13', 10, 35, 60, 25, 0.4, [
        'text'    => true,
        'fgcolor' => [0, 0, 0],
    ])
    ->write2DBarcode('https://example.com/product/123', 'QRCODE,H', 80, 30, 30, 30, [
        'fgcolor' => [33, 37, 41],
        'bgcolor' => [255, 255, 255],
    ]);

ロゴオーバーレイによってコードが部分的に隠れる可能性がある場合は、QRコードの誤り訂正レベル H(高)を使用してください。

LGPL-3.0-or-later ライセンスの下で公開されています。