เนื้อหาต่อไปนี้เป็นตัวอย่างโค้ดการแทรกรูปตราครุฑ ในหนังสื่อราชการ
และการจัดรูปแบบออกสาร เบื้องต้น เป็นแนวทางในการประยุกต์เพิ่มเติม
การจัดรูปแบบของข้อความในตารางรูปแบบ 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; ?>
ตัวอย่าง แสดงแบบมีขอบตาราง
ตัวอย่าง ไม่แสดงขอบตาราง