PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

ตัวอย่าง tcpdf ดึงข้อมูลจากฐานข้อมูล สร้าง report อย่างง่าย

15 November 2014 By


เนื้อหาเกี่ยวกับ การสร้าง report เป้น ไฟล์ pdf ด้วย tcpdf นี้
เดิมมีบทความเก่าอยู่แล้ว 
 
ประยุกต์สร้าง pdf ไฟล์ จาก tcpdf class ด้วย php รองรับภาษาไทย 
http://www.ninenik.com/content.php?arti_id=226 via @ninenik
 
แต่คิดว่า ควรปรับมาใช้ เวอร์ชั่นที่ใหม่  และปัจจุบัน น่าจะดีกว่า
 
สามารรถดาวน์โหลดไฟล์ ตัวอย่างเบื้องต้น และไฟล์ที่เกี่ยวข้องได้ที่
http://www.ninenik.com/demo/tcpdf/tcpdf.rar
 
ฟอนท์ ภาษาไทยสำหรับ tcpdf  
(ถ้าใครโหลดไฟล์ จากด้านบนแล้ว จะมี font ภาษาไทยอยู่ด้วย ไม่ต้องไปดาวน์โหลดใหม่)
โดยชื่อที่เราจะเอาไปใช้และรองรับภาษาไทยมี
angsanaupc
cordiaupc
thsarabun  
http://komsitr.net/2010/03/fpdf-vs-tcpdf/tcpdf_thai_fonts/
 
หรือถ้าใครอยากสร้าง font เฉพาะ ลองสร้างด้วยวิธีตามนี้ดู 
http://www.tcpdf.org/fonts.php
 
หลังจากโหลดไฟล์แล้ว จะมีรูปแบบไฟล์ตัวอย่างประกอบ
 
หรือสามารถทำตามได้ดังนี้
 
1. ไฟล์ข้อมูลที่เราต้องการแสดงเป็นตาราง data_html.php ในตัวอย่าง
จะเป็นการไปดังข้อมูลจังหวัดมาแสดง
 
<?php
session_start();
header("Content-type:text/html; charset=UTF-8");                
header("Cache-Control: no-store, no-cache, must-revalidate");               
header("Cache-Control: post-check=0, pre-check=0", false);    
include("db_connect.php");
?>
<style>
td{
        border:1px dashed #CCC;  
}
</style>

    <table cellspacing="0" cellpadding="1" border="0" style="width:1100px;">  
    	<tr>
        <td width="50" align="center" bgcolor="#F2F2F2">#</td>
        <td bgcolor="#F2F2F2">&nbsp;Topic</td>
        </tr>
<?php
        $i=1;
        $q="SELECT * FROM  province_th WHERE 1 LIMIT 50 ";
        $qr=@mysql_query($q);	
        while($rs=@mysql_fetch_array($qr)){
?>  
  <tr>
    <td align="center"><?=(($e_page*$chk_page)+$i)?></td>
    <td >&nbsp;<?=$rs['province_name']?></td>
  </tr>
<?php $i++; } ?>     
    </table>
 
2. ไฟล์สำหรับติดต่อกับฐานข้อมูล db_connect.php 
 
<?php
// เชื่อมต่อกับฐานข้อมูล    
$link=mysql_connect("localhost","root","test"); // เชื่อมต่อ Server      
mysql_select_db("test");  // ติดต่อฐานข้อมูล      
mysql_query("set character set utf8"); // กำหนดค่า character set ที่จะใช้แสดงผล     
?>
 
3. ไฟล์สร้าง pdf ในที่นี้ใช้ชื่อ test_list_table.php
 
<?php
// Include the main TCPDF library (search for installation path).
require_once('tcpdf/tcpdf.php');
include("tcpdf/class/class_curl.php");

// การตั้งค่าข้อความ ที่เกี่ยวข้องให้ดูในไฟล์ 
// tcpdf / config /  tcpdf_config.php 

// เริ่มสร้างไฟล์ pdf
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// กำหนดรายละเอียดของไฟล์ pdf
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('ninenik');
$pdf->SetTitle('TCPDF table report');
$pdf->SetSubject('TCPDF ทดสอบ');
$pdf->SetKeywords('TCPDF, PDF, ทดสอบ,ninenik, guide');

// กำหนดข้อความส่วนแสดง header
$pdf->SetHeaderData(
    PDF_HEADER_LOGO, // โลโก้ กำหนดค่าในไฟล์  tcpdf_config.php 
    PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001',
    PDF_HEADER_STRING, // กำหนดเพิ่มเติมในไฟล์  tcpdf_config.php 
    array(0,0,0),  // กำหนดสีของข้อความใน header rgb 
    array(0,0,0)   // กำหนดสีของเส้นคั่นใน header rgb 
);

$pdf->setFooterData(
    array(0,64,0),  // กำหนดสีของข้อความใน footer rgb 
    array(220,44,44)   // กำหนดสีของเส้นคั่นใน footer rgb 
);

// กำหนดฟอนท์ของ header และ footer  กำหนดเพิ่มเติมในไฟล์  tcpdf_config.php 
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

// ำหนดฟอนท์ของ monospaced  กำหนดเพิ่มเติมในไฟล์  tcpdf_config.php 
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

// กำหนดขอบเขตความห่างจากขอบ  กำหนดเพิ่มเติมในไฟล์  tcpdf_config.php 
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

// กำหนดแบ่่งหน้าอัตโนมัติ
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

// กำหนดสัดส่วนของรูปภาพ  กำหนดเพิ่มเติมในไฟล์  tcpdf_config.php 
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

// อนุญาตให้สามารถกำหนดรุปแบบ ฟอนท์ย่อยเพิมเติมในหน้าใช้งานได้
$pdf->setFontSubsetting(true);

// กำหนด ฟอนท์
$pdf->SetFont('thsarabun', '', 14, '', true);

// เพิ่มหน้า 
$pdf->AddPage();

// เรียกใช้งาน ฟังก์ชั่นดึงข้อมูลไฟล์มาใช้งาน
$html = curl_get("http://www.example.com/data_html.php"); // path ไฟล์ 
// ภ้าทดสอบที่เครื่องก็ใช้ http://localhost/data_html.php

// สร้าง pdf ด้วยคำสั่ง writeHTMLCell()
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);

// แสดงไฟล์ pdf
$pdf->Output('table_report.pdf', 'I');
?>
 
 
โค้ดและตัวอย่างข้างต้น เป็นการนำเสนอวิธีการดึงข้อมูลจากฐานข้อมูลมาแสดงในรูปแบบ
report ตาราง จากนั้น สร้างไฟล์ pdf จากข้อมูลตารางนั้นๆ
 
ตัวอย่างไฟล์ที่สร้าง http://www.ninenik.com/demo/tcpdf/table_report.pdf

Tags:: ฐานข้อมูล report tcpdf

เนื้อหาพิเศษ เฉพาะสำหรับสมาชิก

กรุณาล็อกอิน และลงชื่อติดตาม


สมัครสมาชิกได้ที่        ล็อกอินได้ที่   



โค้ดตัวอย่าง การแทรกโค้ด html ที่ต้องการแปลงเป็น pdf  เพิ่มเติม

<?php
// Include the main TCPDF library (search for installation path).
require_once('tcpdf/tcpdf.php');
include("tcpdf/class/class_curl.php");

// การตั้งค่าข้อความ ที่เกี่ยวข้องให้ดูในไฟล์ 
// tcpdf / config /  tcpdf_config.php 

// เริ่มสร้างไฟล์ pdf
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// กำหนดรายละเอียดของไฟล์ pdf
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('ninenik');
$pdf->SetTitle('TCPDF table report');
$pdf->SetSubject('TCPDF ทดสอบ');
$pdf->SetKeywords('TCPDF, PDF, ทดสอบ,ninenik, guide');

// กำหนดข้อความส่วนแสดง header
$pdf->SetHeaderData(
    PDF_HEADER_LOGO, // โลโก้ กำหนดค่าในไฟล์  tcpdf_config.php 
    PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001',
    PDF_HEADER_STRING, // กำหนดเพิ่มเติมในไฟล์  tcpdf_config.php 
    array(0,0,0),  // กำหนดสีของข้อความใน header rgb 
    array(0,0,0)   // กำหนดสีของเส้นคั่นใน header rgb 
);

$pdf->setFooterData(
    array(0,64,0),  // กำหนดสีของข้อความใน footer rgb 
    array(220,44,44)   // กำหนดสีของเส้นคั่นใน footer rgb 
);

// กำหนดฟอนท์ของ header และ footer  กำหนดเพิ่มเติมในไฟล์  tcpdf_config.php 
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

// ำหนดฟอนท์ของ monospaced  กำหนดเพิ่มเติมในไฟล์  tcpdf_config.php 
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

// กำหนดขอบเขตความห่างจากขอบ  กำหนดเพิ่มเติมในไฟล์  tcpdf_config.php 
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

// กำหนดแบ่่งหน้าอัตโนมัติ
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

// กำหนดสัดส่วนของรูปภาพ  กำหนดเพิ่มเติมในไฟล์  tcpdf_config.php 
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

// อนุญาตให้สามารถกำหนดรุปแบบ ฟอนท์ย่อยเพิมเติมในหน้าใช้งานได้
$pdf->setFontSubsetting(true);

// กำหนด ฟอนท์
$pdf->SetFont('thsarabun', '', 14, '', true);

// เพิ่มหน้า 
$pdf->AddPage();


ob_start();
?>

<div style="text-align: justify;">
ฟอนท์ ภาษาไทยสำหรับ tcpdf  
(ถ้าใครโหลดไฟล์จากด้านบนแล้ว จะมี font ภาษาไทยอยู่ด้วยไม่ต้องไปดาวน์โหลดใหม่) โดยชื่อที่เราจะเอาไปใช้และรองรับภาษาไทยมี
angsanaupccordiaupc thsarabun           
</div>

<?php
$html=ob_get_clean();
// เรียกใช้งาน ฟังก์ชั่นดึงข้อมูลไฟล์มาใช้งาน
//$html = curl_get("data2.php"); // path ไฟล์ 
// ภ้าทดสอบที่เครื่องก็ใช้ http://localhost/data_html.php

// สร้าง pdf ด้วยคำสั่ง writeHTMLCell()
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);

// แสดงไฟล์ pdf
$pdf->Output('table_report.pdf', 'I');
?>



URL สำหรับอ้างอิง