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

โครงสร้างตัวอย่างจะมีตามนี้
- Classes
- libraries โฟลเดอร์มี mPDF อยู่ด้านใน ที่โหลดจากลิ้งค์ด้านบน
- excel_files โฟลเดอร์สำหรับ บันทึกไฟล์ excel (ของบทความก่อน)
- sample_excel1.php ไฟล์ทดสอบอย่างง่ายสร้างไฟล์ excel (ของบทความก่อน)
- pdf_files โฟลเดอร์สำหรับ บันทึกไฟล์ pdf
- sample_genpdf.php ไฟล์ทดสอบอย่างง่าย
โค้ดไฟล์ sample_genpdf.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 | <?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" ; // เชื่อมต่อฐานข้อมูล //$link=mysql_connect("localhost","root","test") 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' => 14, 'name' => 'thsarabunnew' // ภาษาไทย )); // การจัดรูปแบบของ cell $objPHPExcel ->getDefaultStyle() ->applyFromArray( $styleArray ) ->getAlignment() ->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP) ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //HORIZONTAL_CENTER //VERTICAL_CENTER // การเพิ่มข้อมูล echo date ( 'H:i:s' ) , " Add some data" , EOL; $objPHPExcel ->setActiveSheetIndex(0) ->setCellValue( 'A1' , 'หัวข้อ' ) ->setCellValue( 'B1' , 'หัวข้อย่อย' ); // เราจะทดสอบเพิ่มข้อมูลในตาราง excel อย่างง่าย $start_row =2; for ( $i =1; $i <=10; $i ++){ $objPHPExcel ->setActiveSheetIndex(0) ->setCellValue( 'A' . $start_row , $i ) ->setCellValue( 'B' . $start_row , $i *2); $start_row ++; } // กำหนดชื่อให้กับ worksheet ที่ใช้งาน echo date ( 'H:i:s' ) , " Rename worksheet" , EOL; $objPHPExcel ->getActiveSheet()->setTitle( 'Simple' ); // กำหนด worksheet ที่ต้องการให้เปิดมาแล้วแสดง ค่าจะเริ่มจาก 0 , 1 , 2 , ...... $objPHPExcel ->setActiveSheetIndex(0); // ชื่อไฟล์ $saveFileName = "pdfl_by_phpexcel1" ; // ตรวจสอบการตั้งค่า 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; ?> |
ทดสอบ run ไฟล์ จะได้ตามนี้

เราจะได้ไฟล์ pdf อยู่ในโฟลเดอร์ pdf_files ตามรูป

ลองเปิดไฟล์ pdf จะได้ตามนี้

ตัวอย่างไฟล์ run บน server
หมายเหตุ:: กรณีบันทึกไฟล์บน server เราต้องกำหนด permision
ให้กับโฟลเดอร์ pdf_files เป็น 777 เพื่อให้สามารถเขียนไฟล์ได้