สอบถาม PHPExcel เป็น pdf

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถาม PHPExcel เป็น pdf

สอบถาม PHPExcel เป็น pdf
สอบถามการตั้งค่า PHPExcel  เป็น PDF ต้อง เอาไฟล์  TCPDF ไว้ตรงไหนแล้ว เรียกยังไงครับ
จากโค้ด ผมไม่รู้จะใส่ยังไง 
/** Include PHPExcel */
require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';


//Change these values to select the Rendering library that you wish to use
//and its directory location on your server
$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
//$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
$rendererLibrary = 'tcPDF5.9';
//$rendererLibrary = 'mPDF5.4';
//$rendererLibrary = 'domPDF0.6.0beta3';
$rendererLibraryPath = dirname(__FILE__).'/../../../libraries/PDF/' . $rendererLibrary;
แนะนำด้วยครับ

อันนี้โค้ดเต็มๆ ที่เอามาจากตัวอย่างที่เขาให้มาครับ หรือว่าต้องแก้ตรงไหนบ้าง
/**
 * PHPExcel
 *
 * Copyright (C) 2006 - 2014 PHPExcel
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 * @category   PHPExcel
 * @package    PHPExcel
 * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
 * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
 * @version    1.8.0, 2014-03-02
 */

/** Error reporting */
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('Europe/London');

if (PHP_SAPI == 'cli')
	die('This example should only be run from a Web Browser');

/** Include PHPExcel */
require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';


//	Change these values to select the Rendering library that you wish to use
//		and its directory location on your server
//$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
//$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
//$rendererLibrary = 'tcPDF5.9';
$rendererLibrary = 'mPDF5.4';
//$rendererLibrary = 'domPDF0.6.0beta3';
$rendererLibraryPath = dirname(__FILE__).'/../../../libraries/PDF/' . $rendererLibrary;


// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

// Set document properties
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
							 ->setLastModifiedBy("Maarten Balliauw")
							 ->setTitle("PDF Test Document")
							 ->setSubject("PDF Test Document")
							 ->setDescription("Test document for PDF, generated using PHP classes.")
							 ->setKeywords("pdf php")
							 ->setCategory("Test result file");


// Add some data
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', 'Hello')
            ->setCellValue('B2', 'world!')
            ->setCellValue('C1', 'Hello')
            ->setCellValue('D2', 'world!');

// Miscellaneous glyphs, UTF-8
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A4', 'Miscellaneous glyphs')
            ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');

// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('Simple');
$objPHPExcel->getActiveSheet()->setShowGridLines(false);

// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);


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'
	);
}


// Redirect output to a client’s web browser (PDF)
header('Content-Type: application/pdf');
header('Content-Disposition: attachment;filename="01simple.pdf"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
$objWriter->save('php://output');
exit;


Wowowow 09-07-2014 13:19:06

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
จากโค้ด ตัวอย่าง ก็แก้ที่บรรทัดที่ 48
 
บรรทัดที่ 46 คือชื่อของ pdf class ที่เราไปโหลดมา
 
ตัวอย่าง ถ้าไฟล์ทดสอบอยู่ที่ตำแหน่งตามด้านล่าง
 
www/PHPExcel_1.8.0_doc/Classes
www/PHPExcel_1.8.0_doc/Examples/01simple-download-pdf.php
 
ให้สร้างโฟลเดอร์ libraries ไว้ที่เดียวกับ Classes แล้วก็สร้าง โฟลเดอร์ PDF ไว้ด้านในอีกที
 
www/PHPExcel_1.8.0_doc/libraries/PDF/
 
แล้วก็ไปดาวน์โหลด ใช้ mPDF เลือกเวอร์ชั่น mPDF5.4
 
โหลด pdf libraries มา แล้วแตกไฟล์ ก็อบโฟลเดอร์ มาไว้ในโฟลเดอร์ PDF ด้านบน
แล้วเปลี่ยนชื่อโฟลเดอร์ MPDF54 เป็นชื่อเดียว กับ $rendererLibrary 
 
เสร็จแล้วบรรทัดที่ 48 ก็เปลี่ยน เป็น
 
$rendererLibraryPath = dirname(__FILE__)."/../libraries/PDF/" . $rendererLibrary;
 
ก็ใช้ได้
 
หรือง่ายสุด ก็
โหลด pdf libraries มา แล้วแตกไฟล์ ก็อบโฟลเดอร์ มาไว้ที่เดียวกับไฟล์ทดสอบ
 
แล้วเปลี่ยนชื่อโฟลเดอร์ MPDF54 เป็นชื่อเดียว กับ $rendererLibrary 
 
เสร็จแล้วบรรทัดที่ 48 ก็เปลี่ยน เป็น

$rendererLibraryPath="mPDF5.4";  // เรียกแบบตรงเลย ก็ได้เหมือนกัน


ninenik 10-07-2014
 ความคิดเห็นที่ 2
ทำได้แล้วครับ ขอบคุณมากๆ


wowowow 10-07-2014 10:31






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ