Skip to content

Códigos de barras

El módulo Barcode (BarcodeGenerator, BarcodeRenderer) renderiza códigos de barras 1D y 2D directamente en el PDF. Los tipos de códigos de barras se definen por los enums BarcodeType y Barcode2DType. Todos los métodos retornan static, por lo que cada llamada puede ser encadenada.

Ejemplo básico

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);

Códigos de barras 1D

php
$pdf->write1DBarcode(
    string $code,           // Datos a codificar
    string $type,           // Cadena de tipo de código de barras
    float  $x,              // Posición X
    float  $y,              // Posición Y
    float  $w,              // Ancho
    float  $h,              // Alto
    float  $xres = 0.4,    // Ancho de la barra más delgada en unidades de usuario
    array  $style = [],     // Opciones de estilo
);

Tipos 1D soportados (BarcodeType)

Cadena de tipoValor del enumDescripción
C39CODE_39Code 39
C93CODE_93Code 93
C128CODE_128Code 128 (modo automático)
C128ACODE_128ACode 128 Subset A
C128BCODE_128BCode 128 Subset B
C128CCODE_128CCode 128 Subset C
EAN8EAN_8EAN-8
EAN13EAN_13EAN-13
UPCAUPC_AUPC-A
UPCEUPC_EUPC-E
I25I25Interleaved 2 of 5
S25S25Standard 2 of 5
CODABARCODABARCodabar
CODE11CODE_11Code 11
MSIMSIMSI Plessey
POSTNETPOSTNETPOSTNET (postal US)
PLANETPLANETPLANET (postal US)
IMBIMBIntelligent Mail Barcode
PHARMAPHARMACODEPharmacode

Códigos de barras 2D

php
$pdf->write2DBarcode(
    string $code,           // Datos a codificar
    string $type,           // Cadena de tipo de código de barras
    float  $x,              // Posición X
    float  $y,              // Posición Y
    float  $w,              // Ancho
    float  $h,              // Alto
    array  $style = [],     // Opciones de estilo
);

Tipos 2D soportados (Barcode2DType)

Cadena de tipoValor del enumDescripción
QRCODE,LQR_CODEQR Code — Corrección de errores baja (~7%)
QRCODE,MQR_CODEQR Code — Media (~15%)
QRCODE,QQR_CODEQR Code — Cuartil (~25%)
QRCODE,HQR_CODEQR Code — Alta (~30%)
DATAMATRIXDATAMATRIXDataMatrix
PDF417PDF417PDF417

Opciones de estilo

El arreglo $style controla la apariencia del código de barras tanto para métodos 1D como 2D:

ClaveTipoDescripción
borderboolDibujar un borde alrededor del código de barras
paddingfloat|arrayRelleno dentro del borde
fgcolorarrayColor de primer plano (barra) como [r, g, b]
bgcolorarrayColor de fondo como [r, g, b]
textboolMostrar texto legible debajo de los códigos 1D
stretchboolEstirar el código para llenar el ancho dado

Ejemplo de etiqueta de producto

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],
    ]);

Usa el nivel de corrección de errores QR Code H (alto) cuando el código puede estar parcialmente oculto por una superposición de logo.

Distribuido bajo la licencia LGPL-3.0-or-later.