MPDF
Create the document in Html
The first step would be to make or design an invoice in html.
Absolute units
So height , width , margin , padding and anything can have units of mm , cm , in etc. Fonts should be specified in pt - point unit instead of px.
Tables vs div Tables give more consistent layouts in prints.
Rigid containers
<!DOCTYPE html> <html> <title><span class="o94i5x" id="o94i5x_8">Print Invoice</span></title> <style> * { margin:0; padding:0; font-family:Arial; font-size:10pt; color:#000; } body { width:100%; font-family:Arial; font-size:10pt; margin:0; padding:0; } p { margin:0; padding:0; } #wrapper { width:180mm; margin:0 15mm; } .page { height:297mm; width:210mm; page-break-after:always; } table { border-left: 1px solid #ccc; border-top: 1px solid #ccc; border-spacing:0; border-collapse: collapse; } table td { border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; padding: 2mm; } table.heading { height:50mm; } h1.heading { font-size:14pt; color:#000; font-weight:normal; } h2.heading { font-size:9pt; color:#000; font-weight:normal; } hr { color:#ccc; background:#ccc; } #invoice_body { height: 149mm; } #invoice_body , #invoice_total { width:100%; } #invoice_body table , #invoice_total table { width:100%; border-left: 1px solid #ccc; border-top: 1px solid #ccc; border-spacing:0; border-collapse: collapse; margin-top:5mm; } #invoice_body table td , #invoice_total table td { text-align:center; font-size:9pt; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; padding:2mm 0; } #invoice_body table td.mono , #invoice_total table td.mono { font-family:monospace; text-align:right; padding-right:3mm; font-size:10pt; } #footer { width:180mm; margin:0 15mm; padding-bottom:3mm; } #footer table { width:100%; border-left: 1px solid #ccc; border-top: 1px solid #ccc; background:#eee; border-spacing:0; border-collapse: collapse; } #footer table td { width:25%; text-align:center; font-size:9pt; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; } </style> </head> <body> <div id="wrapper"> <p style="text-align:center; font-weight:bold; padding-top:5mm;">INVOICE</p> <br /> <table class="heading" style="width:100%;"> <tr> <td style="width:80mm;"> <h1 class="heading">Knowledge corner</h1> <h2 class="heading"> 123 Komally<br /> HYderabad - 50014<br /> Ap, INDIA<br /> Website :http://www.knowledgecornor.blogspot.in<br /> E-mail : knowledgecorner.srinu@gmail.com<br /> Phone : +1 - 123456789 </h2> </td> <td rowspan="2" valign="top" align="right" style="padding:3mm;"> <table> <tr><td>Invoice No : </td><td>44-56-25</td></tr> <tr><td>Dated : </td><td>06-Jul-2014</td></tr> <tr><td>Currency : </td><td>IN</td></tr> </table> </td> </tr> <tr> <td> <b>Buyer</b> :<br /> Client Name<br /> Client Address <br /> City - Pincode , Country<br /> </td> </tr> </table> <div id="content"> <div id="invoice_body"> <table> <tr style="background:#eee;"> <td style="width:8%;"><b>Sl. No.</b></td> <td><b>Product</b></td> <td style="width:15%;"><b>Quantity</b></td> <td style="width:15%;"><b>Rate</b></td> <td style="width:15%;"><b>Total</b></td> </tr> </table> <table> <tr> <td style="width:8%;">1</td> <td style="text-align:left; padding-left:10px;"><span class="o94i5x" id="o94i5x_7">Software Development</span><br />Description : Upgradation of telecrm</td> <td class="mono" style="width:15%;">1</td><td style="width:15%;" class="mono">234.00</td> <td style="width:15%;" class="mono">234.00</td> </tr> <tr> <td colspan="3"></td> <td></td> <td></td> </tr> <tr> <td colspan="3"></td> <td>Total :</td> <td class="mono">234.00</td> </tr> </table> </div> <div id="invoice_total"> Total Amount : <table> <tr> <td style="text-align:left; padding-left:10px;">Two Hundred And Thirty Four only</td> <td style="width:15%;">IN</td> <td style="width:15%;" class="mono">234.00</td> </tr> </table> </div> <br /> <hr /> <br /> <table style="width:100%; height:35mm;"> <tr> <td style="width:65%;" valign="top"> Payment Information :<br /> Please make cheque payments payable to : <br /> <b>ABC Corp</b> <br /><br /> The Invoice is payable within 7 days of issue.<br /><br /> </td> <td> <div id="box"> E & O.E.<br /> For Knowledge Corner<br /><br /><br /><br /> Authorised Signatory </div> </td> </tr> </table> </div> <br /> </div> <htmlpagefooter name="footer"> <hr /> <div id="footer"> <table> <tr><td>Software Solutions</td><td>Web Solutions</td><td>Mobile Solutions</td></tr> </table> </div> </htmlpagefooter> <sethtmlpagefooter name="footer" value="on" /> </body> </html>Convert the html to pdf
The php code to convert the html to pdf would be :
<?php include("MPDF53/mpdf.php"); $mpdf=new mPDF('c','A4','','' , 0 , 0 , 0 , 0 , 0 , 0); $mpdf->SetDisplayMode('fullpage'); $mpdf->list_indent_first_level = 0; // 1 or 0 - whether to indent the first level of a list $mpdf->WriteHTML(file_get_contents('invoice.html')); $mpdf->Output(); ?>
mpdf library enables tags like htmlpagefooter which make it very easy to add html footers etc to the pdf pages.
No comments:
Post a Comment