Rabu, 26 September 2018

Tutorial Membuat dokumen PDF dengan PHP menggunakan library FPDF – Mengatur Orientasi dan Format Halaman.


Untuk menentukan orientasi dan format halaman  dapat menggunakan metode AddPage()yang selama ini digunakan untuk membuat dokumen PDF.
Orientasi halaman bisa berupa Potrait atau landscape.

Format halaman dapat berupa ukuran kertas seperti A3, A4, A5, Letter dan Legal.

<?php
          require('fpdf/fpdf.php');
          $teks=file('laporan.txt');
         
          $pdf= new FPDF();
          $pdf->SetMargins(30,30,20);
          $pdf->SetAutoPageBreak(true,30);
          $pdf->AddPage('Lanscape','A4');
          $pdf->SetFont('Arial','',12);
         
          for ($i=0; $i<count($teks);$i++)
                   $pdf->MultiCell(0,6,$teks[$i]);
                  
          $pdf->Output();
         
?>


Dengan mengisi nilai argument pada pernyataan AddPage(), kita bisa mengatur orientasi dan format halamannya, yaitu :

          $pdf->AddPage(‘Landscape’,’A4’);

Maka halaman akan menggunakan orientasi Landscape dan ukuran halaman A4.


Seperti contoh di bawah ini :



Tutorial Membuat dokumen PDF dengan PHP menggunakan library FPDF – Mengatur margin halaman dokumen PDF.


Ada beberapa pernyataan yang digunakan untuk mengatur margin, yaitu

SetMargins(kiri, atas, kanan)
        Untuk mengatur batas kiri, batas kanan dan batas atas halaman. Minimal mengandung nilai untuk batas kiri dan batas kanan. Bila tidak diatur , nilai kiri, kanan dan atas bernilai 1 cm. Nilai argument bisa berupa bilangan real.

SetLeftMargin(margin)
          Untuk mengatur batas kiri halaman.

SetRightMargin(margin)
          Untuk mengatur batas kanan halaman.

SetTopMargin(margin)
          Untuk mengatur batas atas halaman.

Berikut kita coba untuk membuat dokumen pdf dan mengatur marginnya dengan nilai :

Batas atas = 3, Batas kiri = 3, Batas Kanan=2, Batas bawah=3.



<?php
          require('fpdf/fpdf.php');
          $teks=file('laporan.txt');
         
          $pdf= new FPDF();
          $pdf->SetMargins(30,30,20);
          $pdf->SetAutoPageBreak(true,30);
          $pdf->AddPage();
          $pdf->SetFont('Arial','',12);
         
          for ($i=0; $i<count($teks);$i++)
                   $pdf->MultiCell(0,6,$teks[$i]);
                  
          $pdf->Output();
         
?>


Hasil dokumen pdf yang dihasilkan, ketika program dijalankan.





Untuk pengaturan margin kiri, atas, kanan pernyataan yang digunakan adalah :

$pdf->SetMargins(30,30,20);

Untuk mengatur margin bawah di atur melalui pernyataan :

          $pdf->SetAutoPageBreak(true,30);


Tutorial Membuat dokumen PDF dengan PHP menggunakan library FPDF – Mengatur Halaman dokumen PDF.


Mengatur Header dan Footer]

Untuk membuat Header (bagian yang diletakkan disetiap awal halaman dan footer (bagian yang diletakkan di setiap akhir halaman.
Kita bisa menggunakan fungsi FPDF dengan kode program seperti di bawah ini :

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

class PDF extends FPDF
{

function Header()
          {
    $this->SetY(15);
    $this->SetFont('Arial','B',15);
    $this->Cell(0,10,'Laporan PDF',0,1,'C');
 
          }

function Footer()
          {
    // Position at 1.5 cm from bottom
    $this->SetY(-15);
    // Arial italic 8
    $this->SetFont('Arial','I',8);
 
    // Page number
    $this->Cell(0,10,'Page '.$this->PageNo(),0,0,'C');
          }
}

$teks=file('laporanpdf.txt');

$pdf = new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Arial','',12);

for ($i=0; $i < count($teks); $i++)
                   $pdf->MultiCell(0,6,$teks[$i]);

$pdf->Output();
?>




Pada Contoh di atas kita menggunakan kode program :

          class PDF extend FPDF
          {
          …..
          }


Maksud dari penyataan tersebut merupakan perintah untuk membuat kelas turunan bernama PDF yang mewarisi kelas FPDF. Hal ini diperlukan jika kita bermaksud melibatkan header dan footer dalam halaman dokumen PDF. Dengan demikian kelas PDF mewarisi semua hal yang terdapat pada kelas FPDF.

Di dalam kelas PDF terdapat kode :

 function Header()
          {
    $this->SetY(15);
    $this->SetFont('Arial','B',15);
    $this->Cell(0,10,'Laporan PDF',0,1,'C');
          }


Digunakan untuk mengimplementaikan metode Header() yang berfungsi untuk mengontrol header.
Kode program yang berada dalam {} berisi pernyatan pernyataan untuk mengatur header.

Pernyataan :
         
          $this->SetY(15)

Berguna untuk meletakkan posisi kursor pada ordinat 15 dihitung dari atas.
Pernyataan $this, menyatakan milik kelas yang bersangkutan.

Pernyataan :

$this->SetFont('Arial','B',15);

Mengatur pemakaian huruf Arial, dicetak tebal, ukuran 15.


Pernyataan :

$this->Cell(0,10,'Laporan PDF',0,1,'C');

Digunakan untuk membuat tulisan ‘Laporan PDF’  ditampilkan pada header tanpa bingkai , disertai pindah baris, pada posisi tengah.


Untuk menentukan footer menggunakan kode program berikut :

function Footer()
          {
    // Position at 1.5 cm from bottom
    $this->SetY(-15);
    // Arial italic 8
    $this->SetFont('Arial','I',8);
 
    // Page number
    $this->Cell(0,10,'Page '.$this->PageNo(),0,0,'C');
          }

Keterangan :

Pernyataan :

   $this->SetY(-15);

Digunakan untuk mengatur ordinat sebesar 15 mm dari ujung bawah kertas.



$this->SetFont('Arial','I',8);
Menentukan huruf Arial, miring dan berukuran 8


    $this->Cell(0,10,'Page '.$this->PageNo(),0,0,'C');
Digunakan untuk menampilkan tulisan ‘Page’ (halaman) diikuti dengan nilai nomor halaman  diambil dari $this-PageNo()),karakter / dan jumlah halaman diambil melalui {nb}. Tulisan tersebut tanpa bingkai dan pindah halaman, dan tulisan ditampilkan di tengah.


$pdf=new PDF();

Yang ada disebelah kanan new adalah PDF (bukan FPDF seperti ebelumnya).


$pdf->AliasNbPages();

Digunakan untuk membuat{nb} pada footer diganti dengan jumlah halaman. Pernyataan ini dipanggil sebeleum AddPage().


$pdf->AddPage();
Digunakan membuat footer dan header diproses. Oleh karena itu ketika pernyataan :

      For ($i=0; $i<count($teks);$i++)
                $pdf->Multicell(0,6,$teks($i));

Dieksekusi maka header dan footer terbentuk dengan sendirinya.






Tutorial Membuat dokumen PDF dengan PHP – Membuat Tabel


Membuat tabel dengan Cell()

Membuat tabel dokumen PDF dapat menggunakan kode perintah Cell().
Berikut contoh script yang digunakan untuk membuat tabel :

<?php
require('pdf/fpdf.php');
$pdf= new FPDF();
$pdf->AddPage();
$pdf->SetFont('arial','',12);

$pdf->Cell(30,10,'Nama',1,0,’C’);
$pdf->Cell(60,10,'Alamat',1,0,’C’);
$pdf->Cell(30,10,'Jenis Kelamin',1,1,’C’);

$pdf->Cell(30,10,'Dina',1,0);
$pdf->Cell(60,10,'Kebayoran Baru - Jakarta',1,0);
$pdf->Cell(30,10,'Perempuan',1,1);

$pdf->Cell(30,10,'Doni',1,0);
$pdf->Cell(60,10,'Poris - Tangerang',1,0);
$pdf->Cell(30,10,'Laki - Laki',1,1);

$pdf->Cell(30,10,'Vina',1,0);
$pdf->Cell(60,10,'Tambun - Bekasi',1,0);
$pdf->Cell(30,10,'Perempuan',1,1);

$pdf->Output();
?>

Hasilnya sebagai berikut :






Kode program  dibuat dengan menggunakan.kode perintah Cell(),
$pdf->Cell(30,10,'Nama',1,0,’C’);

Cell() dengan  memakai bingkai (Nilai 1 pada argument yang ke empat). Argumen kelima dengan nilai 0, menyatakan bahwa setiap sel dibentuk, “posisi sekarang” tidak perlu dipindahkan ke baris berikutnya. Sehingga pembuatan sel berikutnya akan dibuat pada “posisi sekarang” maka diperoleh dua sel yang terhubung.
Untuk membuat “posisi sekarang” berpindah pada baris berikutnya, argument ke lima diisi angka 1, seperti pada contoh
$pdf->Cell(30,10,'Jenis Kelamin',1,1,’C’);

Argumen ke-6 yaitu angka C, menyatakan bahwa tulisan diletakkan pada posisi tengah sel.

Sel – sel pada tabel juga bisa diberi warna. Brikut adalah contoh kode program dengan menambahkan latar belakang pada judul kolom,

<?php
require('pdf/fpdf.php');
$pdf= new FPDF();
$pdf->AddPage();
$pdf->SetFont('arial','',12);

$pdf->SetFillColor(128, 128, 128);
$pdf->Cell(30,10,'Nama',1,0,’C’,1);
$pdf->Cell(60,10,'Alamat',1,0,’C’,1);
$pdf->Cell(30,10,'Jenis Kelamin',1,1,’C’,1);

$pdf->Cell(30,10,'Dina',1,0);
$pdf->Cell(60,10,'Kebayoran Baru - Jakarta',1,0);
$pdf->Cell(30,10,'Perempuan',1,1);

$pdf->Cell(30,10,'Doni',1,0);
$pdf->Cell(60,10,'Poris - Tangerang',1,0);
$pdf->Cell(30,10,'Laki - Laki',1,1);

$pdf->Cell(30,10,'Vina',1,0);
$pdf->Cell(60,10,'Tambun - Bekasi',1,0);
$pdf->Cell(30,10,'Perempuan',1,1);

$pdf->Output();
?>

Warna diatur melalui kode perintah SetFillColor().
Seperti pada contoh di atas untuk memberikan  warna pada sel, diberikan instruksi   

$pdf->SetFillColor(128, 128, 128);

Kode program tersebut  digunakan untuk memilih warna latar belakang abu – abu.
Agar warna tersebut bisa digunakan sebagai latar belakang Cell() perlu menyertakan argumen ke tujuh berupa angka 1, seperti penulisan kode program berikut ini :

$pdf->Cell(30,10,'Nama',1,0,’C’,1);

Berikut hasil tampilan yang didapatkan ketika menjalankan program.





Membuat Tabel Multi kolom
Berikut adalah contoh kode program umtuk membuat tabel multi kolom.
Menghitung jumlah murid perkelas



<?php
require('pdf/fpdf.php');
$pdf= new FPDF();
$pdf->AddPage();
$pdf->SetFont('arial','',12);

$pdf->SetFillColor(128, 128, 128);
$pdf->Cell(30,20,'Nama',1,0,'C',1);
$posisi_x= $pdf->GetX();
$pdf->Cell(90,10,'Nilai Pelajaran',1,1,'C',1);
$pdf->setX($posisi_x);
$pdf->Cell(30,10,'Matematika',1,0,'C',1);
$pdf->Cell(30,10,'Fisika',1,0,'C',1);
$pdf->Cell(30,10,'Kimia',1,1,'C',1);

$pdf->Cell(30,10,'Dina',1,0);
$pdf->Cell(30,10,'7',1,0);
$pdf->Cell(30,10,'7',1,0);
$pdf->Cell(30,10,'8',1,1);

$pdf->Cell(30,10,'Doni',1,0);
$pdf->Cell(30,10,'7',1,0);
$pdf->Cell(30,10,'8',1,0);
$pdf->Cell(30,10,'8',1,1);

$pdf->Cell(30,10,'Vina',1,0);
$pdf->Cell(30,10,'8',1,0);
$pdf->Cell(30,10,'7',1,0);
$pdf->Cell(30,10,'8',1,1);

$pdf->Output();
?>







Keterangan :
$posisi_x= $pdf->GetX() digunakan untuk memperoleh posisi absis x setelah sel Nama, atau setelah perintah   $pdf->Cell(30,20,'Nama',1,0,'C',1); dijalankan.
Posisi ini diperlukan agar sel yang berisi data Matematika, berada pada absis yang sama dengan yang berisi ‘Nilai Pelajaran’. Oleh karena itu untuk menempatkan  sel yang berisi data ‘Matematika’  pada absis “x” diawali dengan menempatkannya pada “posisi sekarang” sesuai dengan variabel  $posisi_x.

Sesuai dengan kode program :

$pdf->setX($posisi_x);
$pdf->Cell(30,10,'Matematika',1,0,'C',1);


Menghilangkan garis tertentu :
Untuk membuat tabel tanpa menggunakan garis pemisah antara baris, bisa kita lakukan dengan menggunakan kode program berikut di bawah ini :
<?php
require('pdf/fpdf.php');
$pdf= new FPDF();
$pdf->AddPage();
$pdf->SetFont('arial','',12);

$pdf->SetFillColor(128, 128, 128);
$pdf->Cell(30,20,'Nama',1,0,'C',1);
$posisi_x= $pdf->GetX();
$pdf->Cell(90,10,'Nilai Pelajaran',1,1,'C',1);
$pdf->setX($posisi_x);
$pdf->Cell(30,10,'Matematika',1,0,'C',1);
$pdf->Cell(30,10,'Fisika',1,0,'C',1);
$pdf->Cell(30,10,'Kimia',1,1,'C',1);

$pdf->Cell(30,10,'Dina','LR',0);
$pdf->Cell(30,10,'7','LR',0);
$pdf->Cell(30,10,'7','LR',0);
$pdf->Cell(30,10,'8','LR',1);

$pdf->Cell(30,10,'Doni','LR',0);
$pdf->Cell(30,10,'7','LR',0);
$pdf->Cell(30,10,'8','LR',0);
$pdf->Cell(30,10,'8','LR',1);

$pdf->Cell(30,10,'Vina','LRB',0);
$pdf->Cell(30,10,'8','LRB',0);
$pdf->Cell(30,10,'7','LRB',0);
$pdf->Cell(30,10,'8','LRB',1);

$pdf->Output();
?>

Untuk menghilankan garis pada sebuah sel, kita bisa mengatu nilai yang ada pada argument ke-4.
Selain angka, argument ini juga bisa diisi dengan string. Dengan keterangan sebagai berikut :
L – garis dibagian kiri sel
R – garis disebelah kanan sel
T – garis di atas sel
B – garis di bawah sel