Artikel Teknis

Barcode Linear di HotPDF: DrawBarcode dan Simbologi yang Didukung

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 enumSimbologi
hbCode39Code 39 (alfanumerik)
hbCode128Code 128 (ASCII penuh)
hbEAN13EAN-13 (13 digit)
hbEAN8EAN-8 (8 digit)
hbUPCAUPC-A (12 digit)
hbUPCEUPC-E (format ringkas)
hbI25Interleaved 2 of 5
hbCodaBarCodabar

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