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

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

คำอธิบายแสดงในโค้ด (อาจจะไม่ได้อธิบายทั้งหมด แต่น่าจะเดากันได้)
ไค้ดไฟล์ตัวอย่าง simple_gen_gov.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <?php /** Error reporting */ error_reporting (E_ALL); ini_set ( 'display_errors' , TRUE); ini_set ( 'display_startup_errors' , TRUE); date_default_timezone_set( 'Asia/Bangkok' ); 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; ?> |
ตัวอย่าง แสดงแบบมีขอบตาราง
ตัวอย่าง ไม่แสดงขอบตาราง