Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 尝试生成PDF时出现奇怪的错误消息_Php_Phpexcel - Fatal编程技术网

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