Php 尝试生成PDF时出现奇怪的错误消息
我正在尝试使用Php 尝试生成PDF时出现奇怪的错误消息,php,phpexcel,Php,Phpexcel,我正在尝试使用PHPExcel库生成PDF文件 我正在使用这个示例文件,到目前为止,我只更改了库的路径 这是我的密码: <?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 =
PHPExcel
库生成PDF文件
我正在使用这个示例文件,到目前为止,我只更改了库的路径
这是我的密码:
<?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;
你能给我一个线索吗?我肯定我把导入或$renderLibrary
变量搞砸了,但我真的找不到解决方案。
您需要先安装tcPDF,它没有与PHPExcel捆绑在一起。
然后您需要正确配置PHPExcel,甚至可能需要配置tcPDF。在这里提问之前,阅读应该是您的第一个选择
PDF
PHPExcel允许您将电子表格写入PDF格式,以便快速分发所表示的数据
PDF限制请注意,PDF文件格式在单元格样式、数字格式等方面有一些限制
PHPExcel_Writer_PDF
PHPExcel的PDF Writer是第三方PDF呈现库(如tcPDF、mPDF或dompf)的包装器。在PHPExcel版本1.7.8之前,tcPDF库与PHPExcel捆绑在一起;但从1.7.8版中删除了该选项。相反,您现在必须自己安装PDF渲染库;但是PHPExcel将与许多不同的库一起工作
目前,支持以下库:
|---------|---------|-----------------------------------------|----------------------------|
||版本| ||
|库|已测试|可从| PHPExcel内部常数下载|
|---------|---------|-----------------------------------------|----------------------------|
|tcPDF | 5.9 |http://www.tcpdf.org/ |PDF\u渲染器\u TCPDF|
|mPDF | 5.4 |http://www.mpdf1.com/mpdf/ |PDF\U渲染器\U MPDF|
|domPDF | 0.6.0 | beta 3http://code.google.com/p/dompdf/ |PDF\u渲染器\u DOMPPDF|
|---------|---------|-----------------------------------------|----------------------------|
不同的图书馆有不同的优势和劣势。有些生成的格式化输出比其他文件更好,有些更快或使用的内存更少,而有些生成的.pdf文件更小。开发人员可以根据自己的情况选择使用哪一种
在实例化编写器以生成PDF输出之前,您需要指示正在使用的渲染库及其位置
您不会将$renderLibraryPath
设置为指向已安装的任何PDF呈现库的PHPExcel包装(PHPExcel已经知道这一点);将其设置为指向安装了tcPdf的文件夹(或正在使用的任何库)
[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
$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
$rendererLibrary = 'mPDF5.4';
$rendererLibraryPath = dirname(__FILE__).'/../../../libraries/PDF/' . $rendererLibrary;
if (!PHPExcel_Settings::setPdfRenderer(
$rendererName,
$rendererLibraryPath
)) {
die(
'Please set the $rendererName and $rendererLibraryPath values' .
PHP_EOL .
' as appropriate for your directory structure'
);
}