I'm trying to generate a PDF file using the PHPExcel
library.
I'm using the example file and so far I have changed only the paths to the libraries.
Here is my code:
<?php
/** 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 '../excelHelper/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 = 'tcPDF.php';
//$rendererLibrary = 'DomPDF.php';
$rendererLibraryPath = '../excelHelper/PHPExcel/Writer/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;
But it throws a scary error. I tried to fix it the past hour without any luck. Here it is:
[21-Dec-2015 14:47:02 Europe/London] PHP Fatal error: Uncaught exception 'PHPExcel_Writer_Exception' with message 'Unable to load PDF Rendering library' in /home/notiogrg/public_html/dev/excelHelper/PHPExcel/Writer/PDF/tcPDF.php:35
Stack trace:
#0 /home/notiogrg/public_html/dev/excelHelper/PHPExcel/Autoloader.php(82): require()
#1 [internal function]: PHPExcel_Autoloader::Load('PHPExcel_Writer...')
#2 /home/notiogrg/public_html/dev/excelHelper/PHPExcel/Writer/PDF.php(70): spl_autoload_call('PHPExcel_Writer...')
#3 /home/notiogrg/public_html/dev/excelHelper/PHPExcel/IOFactory.php(141): PHPExcel_Writer_PDF->__construct(Object(PHPExcel))
#4 /home/notiogrg/public_html/dev/approvalRequest/generatePDF.php(102): PHPExcel_IOFactory::createWriter(Object(PHPExcel), 'PDF')
#5 {main}
thrown in /home/notiogrg/public_html/dev/excelHelper/PHPExcel/Writer/PDF/tcPDF.php on line 35
Can you give me a clue? I'm sure that I messed something with the imports, or the $rendererLibrary
variable, but I really can't find a solution.