เนื้อหาต่อไปนี้เป็นตัวอย่างโค้ดการแทรกรูปตราครุฑ ในหนังสื่อราชการ
และการจัดรูปแบบออกสาร เบื้องต้น เป็นแนวทางในการประยุกต์เพิ่มเติม
การจัดรูปแบบของข้อความในตารางรูปแบบ excel จะทำให้เราสามารถกำหนด
ตำแหน่ง การจัดวางต่างๆ ได้ง่ายขึ้น
บทความนี้ประยุกต์จากเนื้อหา
ใช้งาน PHPExcel ร่วมกับ mPDF ออกรายงานเป็น pdf รองรับภาษาไทย
https://www.ninenik.com/content.php?arti_id=634 via @ninenik
ดังนั้นให้ดูตามขึ้นตอนของบทความที่แล้วก่อน
รูปตราครุฑตัวอย่างสำหรับใช้ทดสอบ

รูปตราครุฑตัวอย่างสำหรับใช้ทดสอบ

คำอธิบายแสดงในโค้ด (อาจจะไม่ได้อธิบายทั้งหมด แต่น่าจะเดากันได้)
ไค้ดไฟล์ตัวอย่าง simple_gen_gov.php
<?php
/** Error reporting */
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('Asia/Bangkok');
// http://php.net/manual/en/timezones.php
define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); // ส่วนนี้ไม่มีอะไรกำหนดค่าไว้ใช้ในการ echo
require_once 'Classes/PHPExcel.php'; // เรียกใช้งาน class
// กำหนด Rendering library pdf ที่ต้องการ ในที่นี้ใช้ mpdf รองรับภาษาไทย เวอร์ชั่น 5.4
$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
$rendererLibraryPath = "libraries/MPDF54"; // tcpdf MPDF54
// ฟังก์ชั่นสำหรับแปลงค่าการกำหนดขนาดของ cell
function mmToChar($mm){ // แปลงจาก มิลลิเมตร เป็น char
return $mm*0.4724409448819;
}
function mmToPoint($mm){ // แปลงจาก มิลลิเมตร เป็น point
return $mm*2.834645669291;
}
// เชื่อมต่อฐานข้อมูล
/*$link=mysql_connect("localhost","root","") or die("error".mysql_error());
mysql_select_db("test",$link);
mysql_query("set character set utf8"); */
// โฟลเดอร์เก็บไฟล์ กรณีใช้ใน server ให้กำหนด permission เป็น 777
$placeFilesSave="pdf_files/";
// สร้าง PHPExcel object
echo date('H:i:s') , " Create new PHPExcel object" , EOL;
$objPHPExcel = new PHPExcel();
// กำหนดค่าต่างๆ ของเอกสาร excel
echo date('H:i:s') , " Set document properties" , EOL;
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
->setLastModifiedBy("Maarten Balliauw")
->setTitle("PHPExcel Test Document")
->setSubject("PHPExcel Test Document")
->setDescription("Test document for PHPExcel, generated using PHP classes.")
->setKeywords("office PHPExcel php")
->setCategory("Test result file");
// กำหนด รูปภาพ style ที่จะใช้
$styleArray = array(
'font' => array(
// 'bold' => true,
// 'color' => array('rgb' => 'FF0000'),
'size' => '16',
'name' => 'thsarabunnew' // ภาษาไทย
));
$styleBold = array(
'alignment' => array(
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT,
'vertical' => PHPExcel_Style_Alignment::VERTICAL_BOTTOM,
),
'font' => array(
// 'bold' => true,
// 'color' => array('rgb' => 'FF0000'),
'size' => '16',
'name' => 'thsarabunnew' // ภาษาไทย
));
$styleBoldR = array(
'alignment' => array(
'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT,
'vertical' => PHPExcel_Style_Alignment::VERTICAL_BOTTOM,
),
'font' => array(
// 'bold' => true,
// 'color' => array('rgb' => 'FF0000'),
'size' => '16',
'name' => 'thsarabunnew' // ภาษาไทย
));
// กำหนดให้แสดงหรือไม่แสดงเส้นขอบตาราง false ไม่แสดง true แสดง
$objPHPExcel->getActiveSheet()->setShowGridlines(false);
// จัดรูปแบบของ page
$objPHPExcel->getActiveSheet()->getPageSetup()
->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT);
// ORIENTATION_LANDSCAPE , ORIENTATION_PORTRAIT
$objPHPExcel->getActiveSheet()->getPageSetup()
->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
$objPHPExcel->getActiveSheet()->getPageSetup()->setFitToPage(true);
$objPHPExcel->getActiveSheet()->getPageSetup()->setFitToWidth(1);
$objPHPExcel->getActiveSheet()->getPageSetup()->setFitToHeight(0);
// การจัดรูปแบบของ cell
$objPHPExcel->getDefaultStyle()
->applyFromArray($styleArray)
->getAlignment()
->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP)
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
//HORIZONTAL_CENTER //VERTICAL_CENTER
// เพิ่มข้อมูลหรือรูปแบบตาราง
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', '')
->setCellValue('A3', '')
->setCellValue('B1', '')
->setCellValue('C1', '')
->setCellValue('D1', '')
->setCellValue('E1', '')
->setCellValue('F1', '')
->setCellValue('G1', '')
->setCellValue('H1', '')
->setCellValue('I1', '');
// แทรกรูป
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName('Garuda');
$objDrawing->setDescription('Garuda');
$objDrawing->setPath('Garuda_3.jpg');
$objDrawing->setHeight(120); // ความสูงรูป pixels
$objDrawing->setCoordinates('E2'); // ตำแหน่งที่ต้องการแทรกรูป
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
// ส่วนของการกำหนดค่าความกว้างความสูงของ cell
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(mmToChar(49));
$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(mmToPoint(9));
$objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(mmToPoint(28));
// ส่วนของการกำหนดค่าแต่ละช่องรายการ
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('B2', 'ที่ กษ ๐๔.../...........')
->getStyle('B2')->applyFromArray($styleBold);
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('F2', 'คณะกรรมการ…..............')
->getStyle('F2')
->applyFromArray($styleBoldR)
->getAlignment()->setIndent(mmToChar(16));
// ส่วนของการรวม cell
$objPHPExcel->getActiveSheet()
->mergeCells('A1:I1')
->mergeCells('E2:E3')
->mergeCells('F2:I2')
->mergeCells('B2:D2');
// กำหนดชื่อให้กับ worksheet ที่ใช้งาน
echo date('H:i:s') , " Rename worksheet" , EOL;
$objPHPExcel->getActiveSheet()->setTitle('Simple');
// กำหนด worksheet ที่ต้องการให้เปิดมาแล้วแสดง ค่าจะเริ่มจาก 0 , 1 , 2 , ......
$objPHPExcel->setActiveSheetIndex(0);
// ชื่อไฟล์
$saveFileName="gov_gen";
// ตรวจสอบการตั้งค่า Rendering library pdf แล้วหรือไม่
if(!PHPExcel_Settings::setPdfRenderer(
$rendererName,
$rendererLibraryPath
)) {
die(
'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
'<br />' .
'at the top of this script as appropriate for your directory structure'
);
}
// แสดงการเขียนไฟล์เรียกร้อยแล้ว และมีลิ้งค์ให้ดาวโหลด
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
$saveFileNameFull=$saveFileName.".pdf";
$pathSaveFile1=$placeFilesSave.$saveFileNameFull;
$objWriter->save($pathSaveFile1);
echo date('H:i:s') , " Done writing files" , EOL;
echo 'Files have been created in ' , $placeFilesSave , EOL;
echo "<a href='".$pathSaveFile1."' target='_blank'>Download PDF</a>",EOL;
?>
ตัวอย่าง แสดงแบบมีขอบตาราง
ตัวอย่าง ไม่แสดงขอบตาราง