Skip to main content
สร้างรายงาน PDF อย่างง่าย ๆ ด้วย mPDF PHP Library

สร้างรายงาน PDF อย่างง่าย ๆ ด้วย mPDF PHP Library

ในบทความนี้เราจะมาแนะนำการใช้งาน  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;">&nbsp;รายละเอียดสินค้า</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 ได้

 

ตัวอย่าง SourceCode

 

 

 

 


Deprecated: Function create_function() is deprecated in /home/service1/domains/monkeywebstudio.com/public_html/wp-content/plugins/simple-lightbox/controller.php on line 1642