ในบทความนี้เราจะมาแนะนำการใช้งาน mPDF PHP library เป็น Library ที่สามารถ สร้างเอกสารเป็น PDF FILE ได้ ซึ่งต้องบอกก่อนเลยว่าใช้งานง่ายมาก ๆ ครับ
การติดตั้ง mPDF ผ่าน composer
สำหรับ mPDF เราสามารถติดตั้งผ่าน composer ได้ โดยใช้คำสั่ง หากใครยังไม่ได้ติดตั้ง composer ให้ไปติดตั้งก่อนนะครับ composer
composer require mpdf/mpdf
ตัวอย่าง เราจะติดตั้ง mpdf ไว้ที่ D:/xampp/htdocs
เมื่อติดตั้งเรียบร้อยแล้ว
เมื่อติดตั้งเรียบร้อยแล้ว ตัว composer ก็จะสร้าง Folder vendor และ ภายในก็จะมี Folder mpdf ไว้ให้เราเรียกใช้งานครับ
การเรียกใช้งาน mPDF
ต่อมาเรามาสร้าง Folder mpdf ใว้ที่ D:xampp/htdocs/mpdf ครับ และสร้างไฟล์ index.php โดยมีคำสั่งเรียกใช้งานดังนี้ครับ
<?php //เรียกใช้ไฟล์ autoload.php ที่อยู่ใน Folder vendor require_once __DIR__ . '../../vendor/autoload.php'; $mpdf = new mPDF(); $mpdf->WriteHTML('<h1>Hello world!</h1>'); $mpdf->Output();
ตัวอย่างการแสดงผล
ตัวอย่างการประยุกต์ใช้งาน PHP / MySQL แสดงผลในรูปแบบ PDF
ก่อนอื่น สร้าง ฐานข้อมูล stockit โดยมีตาราง items เก็บข้อมูลสินค้า ดังนี้
CREATE TABLE `items` ( `id` int(11) NOT NULL, `code` varchar(50) DEFAULT NULL, `name` varchar(255) NOT NULL, `price` double NOT NULL, `units` varchar(50) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `items` (`id`, `code`, `name`, `price`, `units`) VALUES (1, 'B10', 'HP C4844A BLACK (10)', 1300, 'ตลับ'), (2, 'C11', 'HP C4836A CYAN (11)', 1220, 'ตลับ'), (3, 'Y11', 'HP C4838A YELLOW (11)', 1220, 'ตลับ'), (4, 'C920XL', 'HP CD972A CYAN (920XL)', 450, 'ตลับ'), (5, 'B920XL', 'HP CD975A BLACK (920XL)', 930, 'ตลับ'), (6, 'TZ631', 'BROTHER TZ 631', 800, 'ตลับ'), (7, 'LQ2190', 'EPSON LQ 2190', 550, 'ตลับ'), (8, 'LQ300', 'EPSON LQ 300+', 180, 'ตลับ'), (9, 'L800LC', 'EPSON L800 L-CYAN', 470, 'ขวด'), (10, 'L800LM', 'EPSON L800 L-MAGEN', 470, 'ขวด'); ALTER TABLE `items` ADD PRIMARY KEY (`id`); ALTER TABLE `items` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;
สร้างไฟล์ export.php สำหรับแสดงผลไฟล์ PDF
<?php //เรียกใช้ไฟล์ autoload.php ที่อยู่ใน Folder vendor require_once __DIR__ . '../../vendor/autoload.php'; //ตั้งค่าการเชื่อมต่อฐานข้อมูล $servername = "localhost"; $username = "root"; $password = ""; $dbname = "product"; $conn = mysqli_connect($servername, $username, $password, $dbname); mysqli_set_charset($conn, "utf8"); if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $sql = "SELECT * FROM items"; $result = mysqli_query($conn, $sql); $content = ""; if (mysqli_num_rows($result) > 0) { $i = 1; while($row = mysqli_fetch_assoc($result)) { $content .= '<tr style="border:1px solid #000;"> <td style="border-right:1px solid #000;padding:3px;text-align:center;" >'.$i.'</td> <td style="border-right:1px solid #000;padding:3px;text-align:center;" >'.$row['code'].'</td> <td style="border-right:1px solid #000;padding:3px;" >'.$row['name'].'</td> <td style="border-right:1px solid #000;padding:3px;text-align:center;" >'.$row['units'].'</td> <td style="border-right:1px solid #000;padding:3px;text-align:right;" >'.number_format($row['price'],2).'</td> </tr>'; $i++; } } mysqli_close($conn); $mpdf = new mPDF(); $head = ' <style> body{ font-family: "Garuda";//เรียกใช้font Garuda สำหรับแสดงผล ภาษาไทย } </style> <h2 style="text-align:center">ใบรับสินค้า</h2> <table id="bg-table" width="100%" style="border-collapse: collapse;font-size:12pt;margin-top:8px;"> <tr style="border:1px solid #000;padding:4px;"> <td style="border-right:1px solid #000;padding:4px;text-align:center;" width="10%">ลำดับ</td> <td style="border-right:1px solid #000;padding:4px;text-align:center;" width="15%">รหัสสินค้า</td> <td width="45%" style="border-right:1px solid #000;padding:4px;text-align:center;"> รายละเอียดสินค้า</td> <td style="border-right:1px solid #000;padding:4px;text-align:center;" width="15%">หน่วยนับ</td> <td style="border-right:1px solid #000;padding:4px;text-align:center;" width="15%">ราคา (฿)</td> </tr> </thead> <tbody>'; $end = "</tbody> </table>"; $mpdf->WriteHTML($head); $mpdf->WriteHTML($content); $mpdf->WriteHTML($end); $mpdf->Output();
ผลการทำงาน สามารถแสดงผลข้อมูลในรูปแบบ PDF ได้