바코드
바코드 모듈(BarcodeGenerator, BarcodeRenderer)은 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);1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1D 바코드
php
$pdf->write1DBarcode(
string $code, // 인코딩할 데이터
string $type, // 바코드 유형 문자열
float $x, // X 위치
float $y, // Y 위치
float $w, // 너비
float $h, // 높이
float $xres = 0.4, // 사용자 단위에서 가장 얇은 바의 너비
array $style = [], // 스타일 옵션
);1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
지원되는 1D 유형 (BarcodeType)
| 유형 문자열 | 열거형 값 | 설명 |
|---|---|---|
C39 | CODE_39 | Code 39 |
C93 | CODE_93 | Code 93 |
C128 | CODE_128 | Code 128 (자동 모드) |
C128A | CODE_128A | Code 128 Subset A |
C128B | CODE_128B | Code 128 Subset B |
C128C | CODE_128C | Code 128 Subset C |
EAN8 | EAN_8 | EAN-8 |
EAN13 | EAN_13 | EAN-13 |
UPCA | UPC_A | UPC-A |
UPCE | UPC_E | UPC-E |
I25 | I25 | Interleaved 2 of 5 |
S25 | S25 | Standard 2 of 5 |
CODABAR | CODABAR | Codabar |
CODE11 | CODE_11 | Code 11 |
MSI | MSI | MSI Plessey |
POSTNET | POSTNET | POSTNET (미국 우편) |
PLANET | PLANET | PLANET (미국 우편) |
IMB | IMB | Intelligent Mail Barcode |
PHARMA | PHARMACODE | Pharmacode |
2D 바코드
php
$pdf->write2DBarcode(
string $code, // 인코딩할 데이터
string $type, // 바코드 유형 문자열
float $x, // X 위치
float $y, // Y 위치
float $w, // 너비
float $h, // 높이
array $style = [], // 스타일 옵션
);1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
지원되는 2D 유형 (Barcode2DType)
| 유형 문자열 | 열거형 값 | 설명 |
|---|---|---|
QRCODE,L | QR_CODE | QR Code — 낮은 오류 정정 (~7%) |
QRCODE,M | QR_CODE | QR Code — 중간 (~15%) |
QRCODE,Q | QR_CODE | QR Code — 사분위 (~25%) |
QRCODE,H | QR_CODE | QR Code — 높음 (~30%) |
DATAMATRIX | DATAMATRIX | DataMatrix |
PDF417 | PDF417 | PDF417 |
스타일 옵션
$style 배열은 1D 및 2D 메서드 모두에서 바코드 외관을 제어합니다:
| 키 | 유형 | 설명 |
|---|---|---|
border | bool | 바코드 주위에 테두리 그리기 |
padding | float|array | 테두리 내부의 패딩 |
fgcolor | array | 전경(바) 색상으로 [r, g, b] 형식 |
bgcolor | array | 배경 색상으로 [r, g, b] 형식 |
text | bool | 1D 바코드 아래에 사람이 읽을 수 있는 텍스트 표시 |
stretch | bool | 주어진 너비에 맞게 바코드 늘리기 |
제품 라벨 예제
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],
]);1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
로고 오버레이로 인해 코드가 부분적으로 가려질 수 있는 경우 QR Code 오류 정정 레벨 H(높음)를 사용하십시오.