HotPDF menyertakan dukungan bawaan untuk menggambar barcode linear langsung ke dokumen PDF sebagai grafik vektor. Barcode dirender sebagai path PDF asli, bukan gambar raster, sehingga tetap tajam pada resolusi printer apa pun tanpa overhead pengambilan bitmap
HotPDF mendukung banyak simbologi linear, termasuk keluarga Code 2 of 5, Code 39, Code 128, Code 93, MSI, PostNet, Codabar, UPC/EAN, dan GS1-128 (EAN-128). Daftar ini mencakup label rantai pasok, titik penjualan ritel, dan kode industri lama tanpa mengubah hasil menjadi bitmap
Dua metode menggambar barcode
HotPDF menyediakan dua entry point untuk menggambar barcode pada halaman saat ini:
- DrawBarcode: mengambil koordinat kiri-bawah, tinggi, teks yang akan dikodekan, tipe barcode, dan unit modul (
MUnit) yang menentukan lebar bar terkecil dalam poin. Gunakan ini ketika posisi dan dimensi ditetapkan terhadap tata letak halaman yang Anda kendalikan - DirectDrawBarcode: menerima parameter yang sama tetapi melewati perhitungan koordinat halaman normal, berguna ketika Anda merender ke PDF dari kode lain yang sudah melacak posisi kursor
Tanda tangan DrawBarcode
procedure DrawBarcode(
X, Y: Double; // kiri-bawah dari bounding box barcode
Height: Double; // tinggi dalam poin
Text: string; // data yang akan dikodekan
BarcodeType: THPDFBarcodeType;
MUnit: Double; // lebar modul dalam poin
UseCheckSum: Boolean // sertakan digit checksum jika True
);
Contoh: Code 128
PDF.CurrentPage.DrawBarcode(
72, // X: 1 inci dari kiri
600, // Y: koordinat kiri-bawah dari bar
48, // Height: 48 poin
'ABC-123',
hbCode128,
1.5, // MUnit: 1.5 poin per modul
True // sertakan checksum
);
Tipe barcode yang didukung (THPDFBarcodeType)
| Nilai enum | Simbologi |
|---|---|
hbCode39 | Code 39 (alfanumerik) |
hbCode128 | Code 128 (ASCII penuh) |
hbEAN13 | EAN-13 (13 digit) |
hbEAN8 | EAN-8 (8 digit) |
hbUPCA | UPC-A (12 digit) |
hbUPCE | UPC-E (format ringkas) |
hbI25 | Interleaved 2 of 5 |
hbCodaBar | Codabar |
MUnit dan quiet zone
Parameter MUnit mengontrol lebar bar yang paling sempit dalam poin. Nilai yang lebih besar menghasilkan barcode yang lebih lebar secara keseluruhan dan lebih mudah dibaca scanner laser jarak jauh. Nilai yang sangat kecil (di bawah 0,8 poin pada umumnya) menghasilkan bar yang terlalu sempit untuk dicetak secara andal pada printer laser standar 600 dpi
HotPDF tidak menambahkan quiet zone (area putih yang diperlukan di kedua sisi barcode) secara otomatis. Koordinat X yang Anda berikan adalah tempat bar terkiri dimulai; sisakan ruang kosong yang cukup di kiri dan kanan dalam tata letak halaman Anda. Standar industri merekomendasikan quiet zone minimum 10× lebar modul di setiap sisi untuk barcode 1D
UseCheckSum
Meneruskan True ke UseCheckSum membuat HotPDF menghitung dan menambahkan digit atau karakter checksum yang diperlukan oleh simbologi. Untuk simbologi yang mengharuskan checksum (EAN-13, EAN-8, UPC-A, UPC-E), parameter ini harus True; scanner akan menolak barcode tanpa checksum yang valid. Untuk Code 39 dan Interleaved 2 of 5, checksum bersifat opsional menurut standar tetapi direkomendasikan untuk sesi pemindaian yang intens kesalahan
Ketika UseCheckSum adalah True, karakter yang ditambahkan tidak muncul dalam teks yang dicetak manusia di bawah barcode (jika Anda menggambar teks itu secara terpisah); Anda hanya perlu menggambar nilai asli dan membiarkan komponen menghitung tambahannya
Barcode 2D
Untuk barcode 2D seperti QR Code, PDF417, dan Data Matrix, lihat artikel tentang PDFlibPas barcode generation, yang mencakup dukungan barcode 2D dalam pustaka PDF Delphi