Mencetak Laporan ke Printer Menggunakan PHP dan MPDF

Cetak Laporan ke Printer dengan PHP Mencetak laporan ke printer menggunakan PHP memerlukan trik khusus. Ini dikarenakan mencetak sesuatu dari browser ke printer itu seringkali posisi layoutnya tidak sesuai seperti yang kita inginkan. Karena setiap browser memiliki setting margin, layout, skala yang bisa diatur-atur sendiri oleh pengguna browser di komputernya masing-masing.

Karena kondisinya demikian, maka kita tidak bisa mengandalkan pencetakan langsung ke halaman web — sebab layout bisa berubah-ubah. Solusinya adalah dengan mencetak ke .PDF. Sebab kalau sudah dicetak ke .PDF, maka di browser apapun akan mencetak sama persis seperti yang ada di file .PDF tersebut.

Salah satu library PDF untuk PHP yang menurut penulis cukup bagus untuk keperluan mencetak laporan adalah MPDF. Keunggulan MPDF ini adalah kemampuan mengkonversi format HTML menjadi PDF. Disamping itu ada fitur lain seperti penentuan ukuran kertas, setting header dan footer otomatis, dan sebagainya.

Library MPDF bisa di download gratis disini.

Di bawah ini ada contoh script sederhana bagaimana membuat tabel laporan menggunakan MPDF, yang nantinya bisa dicetak, bahkan disimpan dalam bentuk file .PDF

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
include('./mpdf57/mpdf.php');
 
ob_start();
?>
 
<style>
td {
    padding: 3px 5px 3px 5px;
    border-right: 1px solid #666666;
    border-bottom: 1px solid #666666;
}
 
.head td {
    font-weight: bold;
    font-size: 12px;
    background: #b7f0ff; 
}
 
table .main tbody tr td {
    font-size: 12px;
}
 
table, table .main {
    width: 100%;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-collapse: collapse;
    background: #fff;
}
 
h1 {
    font-size:20px;
}
</style>
 
<table class='main' repeat_header="1" cellspacing="0" width="100%" style="width:100%">
<thead>
<tr class="head">
    <td align='center' height="30">No.</td>
    <td>Kode Barang</td>
    <td align='center'>Nama Barang</td>
    <td align='right'>Saldo Stok</td>
</tr>
</thead>
 
<tbody>
<tr><td align='center'>1</td><td>PSG-001</td><td>Pasta Gigi</td><td align='right'>150</td></tr>
<tr><td align='center'>2</td><td>SBM-002</td><td>Sabun Mandi</td><td align='right'>63</td></tr>
<tr><td align='center'>3</td><td>PML-008</td><td>Pembersih Lantai</td><td align='right'>260</td></tr>
</tbody>
 
</table>
 
<?php
$content = ob_get_clean();
 
$header = '<table cellpadding=0 cellspacing=0 style="border:none;">
           <tr><td style="border:none;" align="left"><img src="img/logo-disini.jpg" width="42"></td>
           <td width="100%" style="border:none;"><h1>Laporan Stok Barang</h1></td></tr></table>';
 
$footer = '<table cellpadding=0 cellspacing=0 style="border:none;">
           <tr><td style="margin-right:-5px;border:none;" align="left">
           Dicetak: '.date("Y-m-d H:i").'</td>
           <td style="margin-right:-5px;border:none;" align="right">
           Halaman: {PAGENO} / {nb}</td></tr></table>';            
 
try {
    $mpdf=new mPDF('utf-8', "A4", 9 ,'Arial', 5, 5, 20, 5, 5, 4);
    $mpdf->SetTitle("Laporan Stok Barang");
    $mpdf->setHTMLHeader($header);
    $mpdf->setHTMLFooter($footer);
    $mpdf->WriteHTML($content);
    $mpdf->Output("laporan-stok.pdf","I");
} catch(Exception $e) {
    echo $e;
    exit;
}
?>

Contoh file .PDF yang dihasilkan dari script ini dapat dilihat disini.

Bila kita mengeset header dan footer dengan fungsi setHTMLHeader & setHTMLFooter, maka pada setiap halaman yang kita cetak, akan muncul header dan footer tersebut. Ini sangat berguna menampilkan judul laporan atau keterangan tambahan dibagian bawah halaman. Menjadikan laporan kita cantik dan rapi.

Bila anda ingin mengubah orientasi halaman menjadi Landscape di MPDF, caranya adalah dengan menambahkan “-L” pada ukuran kertas. Misalnya ingin menggunakan A4 Landscape, maka kodenya adalah “A4-L”. Untuk orientasi Potrait, biarkan saja tanpa tambahan apa-apa pada ukuran kertasnya.

1
$mpdf=new mPDF('utf-8', "A4-L", 9 ,'Arial', 5, 5, 20, 5, 5, 4);

Selamat mencoba.

Yang sedang trend:

Rating:

4 komentar pada "Mencetak Laporan ke Printer Menggunakan PHP dan MPDF"

  1. Hey would you mind letting me know which web host you’re working with?
    I’ve loaded your blog in 3 completely different browsers and I
    must say this blog loads a lot quicker then most. Can you suggest a good web hosting provider at a honest price?

    Rating
  2. Greetings from Ohio! I’m bored at work so I decided to check out your site on my iphone
    during lunch break. I really like the knowledge you provide here and can’t wait to
    take a look when I get home. I’m shocked at
    how quick your blog loaded on my phone .. I’m not
    even using WIFI, just 3G .. Anyhow, superb blog!

    Rating

Tinggalkan Balasan

Alamat surel Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *