PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

ประยุกต์การใช้งาน tcpdf สร้าง pdf ไฟล์ ใน codeigniter

01 June 2016 By


เนื้อหาต่อไปนี้เป็นแนวทางการนำ tcpdf มาใช้งานใน codeigniter สำหรับ
รองรับการสร้างไฟล์ pdf รองรับการใช้งานภาษาไทย
ก่อนอื่นให้เราไปทำการดาวน์โหลด tcpdf ได้ที่ 
 
http://www.tcpdf.org
หรือ
https://sourceforge.net/projects/tcpdf/files/
 
ในที่นี้ดาวน์โหลดตัวเวอร์ชั่น tcpdf_6_2_12.zip ให้เราแตกไฟล์ แล้ว copy โฟลเดอร์
tcpdf ด้านในมาไว้ในโฟลเดอร์ apps > third_party ในโปรเจ็ค codeigniter ของเรา
*ในโฟลเดอร์ tcpdf จะมีโฟลเดอร์ตัวอย่างและโค้ดการใช้งานอยู่ด้านในชื่อ examples เราสามารถลบออกได้
 
 
 
 
จากนั้นให้สร้างไฟล์ชื่อ Pdf.php ตัวเล็กใหญ่ตามนี้เลย ไว้ในโฟลเดอร์ apps > libraries
 
 

 
 
และใส่โค้ดดังนี้
 
<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');  
require_once APPPATH."/third_party/tcpdf/tcpdf.php";
class Pdf extends TCPDF 
{
    public function __construct() {
		parent::__construct();
    }
}
 
 
และสุดท้ายในขั้นตอนการนำไปใช้ ก็สามารถเรียกใช้ด้วยคำสั่ง ของ tcpdf ได้ปกติ
ตัวอย่างทดสอบ ให้เราสร้างไฟล์ชื่อ Genpdf.php ไว้ในโฟลเดอร์ apps > controllers 
โค้ดดังนี้
 
<?php  
defined('BASEPATH') OR exit('No direct script access allowed');  
  
class Genpdf extends CI_Controller {  
    
    public function __construct()
    {
		parent::__construct();
		$this->load->library('Pdf');
    }  

	public function index()
	{

		// สร้าง object สำหรับใช้สร้าง pdf 
		$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
		
		// กำหนดรายละเอียดของ pdf
		$pdf->SetCreator(PDF_CREATOR);
		$pdf->SetAuthor('Nicola Asuni');
		$pdf->SetTitle('TCPDF Example 001');
		$pdf->SetSubject('TCPDF Tutorial');
		$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
		
		// กำหนดข้อมูลที่จะแสดงในส่วนของ header และ footer
		$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001', PDF_HEADER_STRING, array(0,64,255), array(0,64,128));
		$pdf->setFooterData(array(0,64,0), array(0,64,128));
		
		// กำหนดรูปแบบของฟอนท์และขนาดฟอนท์ที่ใช้ใน header และ footer
		$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
		$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
		
		// กำหนดค่าเริ่มต้นของฟอนท์แบบ monospaced 
		$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
		
		// กำหนด margins
		$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);
		
		// กำหนดรูปแบบการปรับขนาดของรูปภาพ 
		$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
		
		// ---------------------------------------------------------
		
		// set default font subsetting mode
		$pdf->setFontSubsetting(true);
		
		// กำหนดฟอนท์ 
		// ฟอนท์ freeserif รองรับภาษาไทย
		$pdf->SetFont('freeserif', '', 14, '', true);
		
		
		
		// เพิ่มหน้า pdf
		// การกำหนดในส่วนนี้ สามารถปรับรูปแบบต่างๆ ได้ ดูวิธีใช้งานที่คู่มือของ tcpdf เพิ่มเติม
		$pdf->AddPage();
		
		// กำหนดเงาของข้อความ 
		$pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal'));

// กำหนดเนื้อหาข้อมูลที่จะสร้าง pdf ในที่นี้เราจะกำหนดเป็นแบบ html โปรดระวัง EOD; โค้ดสุดท้ายต้องชิดซ้ายไม่เว้นวรรค
	$html = <<<EOD
<h1>ทดสอบข้อความภาษาไทย Welcome to <a href="http://www.tcpdf.org" 
style="text-decoration:none;background-color:#CC0000;color:black;">&nbsp;
<span style="color:black;">TC</span><span style="color:white;">PDF</span>&nbsp;</a>!</h1>
<i>This is the first example of TCPDF library. ทดสอบข้อความภาษาไทย</i>
<p>This text is printed using the <i>writeHTMLCell()</i> method but you can also use: 
<i>Multicell(), writeHTML(), Write(), Cell() and Text()</i>.</p>
<p>Please check the source code documentation and other examples for further information.</p>
<p style="color:#CC0000;">TO IMPROVE AND EXPAND TCPDF I NEED YOUR SUPPORT, PLEASE 
<a href="http://sourceforge.net/donate/index.php?group_id=128076">MAKE A DONATION 
ทดสอบข้อความภาษาไทย!</a></p>
<span style="font-size:12px;">ทดสอบข้อความภาษาไทย มีสระ วรรณยุกต์</span>
EOD;

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

// ---------------------------------------------------------

	// จบการทำงานและแสดงไฟล์ pdf
	// การกำหนดในส่วนนี้ สามารถปรับรูปแบบต่างๆ ได้ เช่นให้บันทึกเป้นไฟล์ หรือให้แสดง pdf เลย ดูวิธีใช้งานที่คู่มือของ tcpdf เพิ่มเติม
	$pdf->Output('example_001.pdf', 'I');

	}
		
}

 
ผลลัพธ์
 


 
จะได้ผลลัพธ์ดังรูปต่อไปนี้  สำหรับวิธีการใช้งาน tcpdf เราสามารถดูวิธีการปรับค่าต่างๆ ได้ที่เว็บไซต์ 
http://www.tcpdf.org/ 

 

หากต้องการใช้งานฟอนท์ อื่นๆ เราสามารถแปลงไฟล์ฟอนท์ ttf สำหรับ tcpdf ได้ที่
http://fonts.snm-portal.com/
 
ลากไฟล์ฟอนท์ ttf ที่ต้องการไปยังตำแหน่งดังรูป
 

 
คลิกเลือก I have rights to convert this font แล้ว 
เราจะได้ไฟล์ 3 ไฟล์ ให้เราดาวน์โหลด แล้ว copy ไปไว้ในโฟลเดอร์ tcpdf > fonts 
ทั้ง 3 ไฟล์ 
FamilyName: thsarabunnew คือชื่อฟอนท์ที่เราจะเอาไปใช้งาน
 

 
 
ตัวอย่างใช้งานฟอนท์ thsarabunnew ที่แปลงจากเว็บข้างต้น และเรียกใช้งานใน tcpdf
 

 
 

Tags:: codeigniter tcpdf

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

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


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





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