Tuesday, September 23, 2014

Membuat garis putus-putus pada FPDF PHP

Dalam pemrograman PHP, ada kalanya kita perlu menciptakan file-file berupa PDF. biasanya file-file PDF ini diperlukan untuk mengcreate laporan-laporan atau file-file berkas yang harus di generate dengan Generator Engine. Salah satu Generator PDF adalah FPDF untuk mempelajari lebih lanjut tentang FPDF silahkan berkunjung di situs resminya : www.fpdf.org

Dalam menggenerate sebuah PDF, terkadang kita perlu membuat sebuah garis, fungsi ini sudah disediakan oleh FPDF. Namun untuk membuat garis putus-putus (dashed) FPDF belum menyediakan fungsinya. Untuk membuat garis putus-putus pada FPDF berikut ini adalah contoh penerapan dalam kodingnya:

1. Buka dulu fpdf.org kemuadian pelajari dulu dokumentasi fpdf bagaimana caranya membuat PDF dengan menggunakan fpdf.
2. Kemudian cobalah scrip PHP dibawah ini.


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

class PDF extends FPDF
{
    function SetDash($black=false, $white=false)
    {
        if($black and $white)
            $s=sprintf('[%.3f %.3f] 0 d', $black*$this->k, $white*$this->k);
        else
            $s='[] 0 d';
        $this->_out($s);
    }
}

$pdf=new PDF();
$pdf->Open();
$pdf->AddPage();
$pdf->SetLineWidth(0.1);
$pdf->SetDash(5, 5); //5mm on, 5mm off
$pdf->Line(20, 20, 190, 20);
$pdf->SetLineWidth(0.5);
$pdf->Line(20, 25, 190, 25);
$pdf->SetLineWidth(0.8);
$pdf->SetDash(4, 2); //4mm on, 2mm off
$pdf->Rect(20, 30, 170, 20);
$pdf->SetDash(); //restore no dash
$pdf->Line(20, 55, 190, 55);
$pdf->Output();
?>
Penjelasan Koding :
- Pada koding di atas sudah disediakan fungsi "SetDash" yang merupakan turunan dari kelas FPDF.
- SetLineWidth() --> menentukan tebal garis yang akan dibuat
- SetDash(5,5) --> menentukan pajang garis dan jarak antara garis putus-putus, dengan satuan milimeter
- Line(20,20,190,20) --> menentukan titik awal dan titik akhir garis yang akan di buat (x1,y1,x2,y2)
3. Tampilan hasil dari koding tersebut adalah sebagai berikut

Silahkan mencoba,.
sumber : fpdf.de
link download :source

No comments:

Post a Comment