Programming, tutorials, mechatronics, operating systems, dan artikel teknologi lainnya.

Membuat barcode di PDF dengan PHP FPDF

Tidak ada komentar
Kali ini saya akan menjelaskan bagaimana cara menambahkan barcode pada file pdf yang kita buat dengan menggunakan library php FPDF. Pada tutorial ini saya berasumsi bahwa anda sudah memahami dasar penggunaan library FPDF untuk membuat sebuah file pdf. Jika belum, anda bisa membaca tutorial Cara membuat file PDF di PHP menggunakan library FPDF.

Mengapa dan apa itu barcode?

Barcode adalah data numerik optik berupa runtutan garis-garis yang bisa dibaca oleh mesin. Biasanya anda temui pada label-label, kemasan produk, atau berkas elektronik.
Barcode digunakan untuk mempercepat input data numerik, pada toko swalayan misalnya, input produk pada sistem kasir sudah menggunakan barcode, jadi kasir tidak perlu menginputkan angka secara manual dengan keyboard (kecuali dalam kondisi tertentu). Yang pastinya akan mempercepat proses pelayanan.
Tidak hanya terbatas pada produk saja, barcode juga biasa digunakan pada label, nota tagihan, kwitansi yang umumnya digunakan oleh perusahaan-perusahaan untuk mempercepat proses input data.

Dukungan barcode untuk library FPDF.

Pada dasarnya, FPDF tidak memiliki dukungan untuk membuat barcode. Namun bukan berarti anda tidak bisa membuat barcode dengan librari FPDF.
Untuk dapat menambahkan barcode di dokumen pdf anda, anda memerlukan sebuah class custom yang menambah dukungan barcode di pdf.
Sudah saya siapkan di repository saya, silahkan download disini:
https://github.com/gemul/fpdf-barcode

Terdapat banyak format barcode yang beredar. Disini saya akan bahas hanya 2 format yang paling umum digunakan yaitu EAN13 dan UPC_A.
EAN adalah singkatan dari European Article Number. Merupakan standar yang digunakan secara global untuk mengidentifikasi produk, packaging, dan manufaktur.
UPC adalah singkatan dari Universal Product Code. Merupakan standar yang  digunakan secara luas  di amerika, kanada, inggris, australia, new zealand, dan eropa untuk mengidentifikasi barang.
Keduanya dapat menampung sebanyak 12 digit angka.
Untuk lebih lengkapnya mengenai barcode silahkan baca di wikipedia. Back to the point.

Menggunakan custom fpdf class untuk membuat barcode.

Pertama, tentu saja anda memerlukan library FPDF, bisa anda download disini.
Lalu download dan copy-paste file fpdf_barcode.php dari repository saya ke folder htdocs anda beserta library utama FPDF. Pastikan baris kedua dari file fpdf_barcode.php merujuk pada file fpdf.php dari library utama.
Berikut adalah struktur folder saya:
\htdocs\pdf\
         |-fpdf\
         |  |-fpdf.php
         |-fpdf_barcode.php
jadi baris kedua file saya harus seperti ini:
require('fpdf/fpdf.php');

Selanjutnya, buat sebuah file php baru untuk generator pdf. Lalu copy-paste kode berikut kedalamnya.

<?php
require('fpdf_barcode.php');

$pdf = new PDF_BARCODE('P','mm','A4');

$pdf->AddPage();

//EAN13 test
$pdf->EAN13(10,10,'123456789012',5,0.5,9);
$pdf->EAN13(10,20,'123456789012',5,0.35,9);
$pdf->EAN13(10,30,'123456789012',10,0.35,9);

//UPC_A test
$pdf->UPC_A(100,10,'123456789012',5,0.5,9);
$pdf->UPC_A(100,20,'123456789012',5,0.35,9);
$pdf->UPC_A(100,30,'123456789012',10,0.35,9);

$pdf->Output();

Simpan, lalu buka melalui browser. Maka hasilnya adalah seperti berikut.

Maksud dari kode diatas adalah, pertama kita muat library fpdf_barcode.php (bukan fpdf.php).
 Lalu kita buat sebuah object baru dari class PDF_BARCODE, simpan dengan variabel $pdf.
class PDF_BARCODE merupakan turunan dari FPDF, jadi parameter-parameter dan fungsi yang digunakan sama.
Lalu buat sebuah halaman baru dengan perintah AddPage().
Baris berikutnya adalah perintah untuk membuat barcode EAN13 dan UPC_A.

Pada class PDF_BARCODE, terdapat dua buah method tambahan yaitu EAN13 dan UPC_A. Sesuai namanya, masing-masing fungsi digunakan untuk membuat sebuah barcode.

Untuk EAN13, cara penggunaanya adalah:
$pdf->EAN13(float x, float y, string barcode [, float h [, float w[, int font_size]]])

Sedangkan untuk UPC_A, caranya adalah:
$pdf->UPC_A(float x, float y, string barcode [, float h [, float w[, int font_size]]])

Keduanya memiliki format parameter yang sama, dimana:
  • x dan y adalah koordinat posisi penempatan barcode. 
  • barcode adalah isi dari barcode, berupa 12 digit angka.
  • h merupakan tinggi barcode, defaultnya adalah 16.
  • w merupakan lebar garis barcode, bukan lebar keseluruhan barcode. Defaultnya adalah 0.35.
  • font_size adalah ukuran teks dibawah barcode, dalam satuan point.
Jadi, baris berikut:

$pdf->EAN13(10,10,'123456789012',5,0.5,9);

Berarti kita membuat barcode format EAN13 dengan posisi 10mm dari atas halaman, 10mm dari kiri halaman. Barcode berisi angka 123456789012 dengan tinggi 5, dan lebar garis 0.5 Dan text dibawah barcode berukuran 9 point.

Jika anda masih bingung, silahkan simak video tutorial di channel saya berikut ini:
https://www.youtube.com/watch?v=nZCvHXt2AyI
Source code bisa anda download melalui link pada deskripsi.

Tidak ada komentar :

Posting Komentar