Cakephp 2.6.1,PHPExcel"无法加载PDF渲染库"

时间:2015-03-18 02:07:36

标签: cakephp pdf phpexcel

在同一个项目中,我正在使用phpExcel生成excel文件。

PHPExcel文件位置:

C:\ wamp \ www \ circulo \ app \ Vendor \ PHPExcel \(此文件夹包含PHPExcel.php以及PHPExcel文件夹)

同样在同一个项目中,我单独使用dompdf生成pdf文件就好了(不是通过PHPExcel)。我很喜欢PHPExcel如何允许excel文件构建,所以我也想通过PHPExcel创建pdfs。

dompdf文件位置:

C:\瓦帕\ WWW \ circulo \应用\卖方\ DOMPDF \

通过debugger =>路径似乎是正确的C:\瓦帕\ WWW \ circulo \应用\卖方\ DOMPDF \ dompdf.php

这是我获取pdf文件的代码: 我收到错误: [PHPExcel_Writer_Exception]无法加载PDF渲染库

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');

require_once APP . DS . 'Vendor' . DS . 'PHPExcel' . DS . 'PHPExcel.php';

$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF; 
$rendererLibrary = 'dompdf.php'; 
$rendererLibraryPath = APP . 'Vendor' . DS . 'dompdf' . DS  .$rendererLibrary;
Debugger::log($rendererLibraryPath);

if (!PHPExcel_Settings::setPdfRenderer(   $rendererName,   $rendererLibraryPath  )) {  die(   'Please set the $rendererName and $rendererLibraryPath values' .   PHP_EOL .   ' as appropriate for your directory structure' . $rendererLibraryPath  ); } 

$objPHPExcel = new PHPExcel;
$objWriter = new PHPExcel_Writer_PDF($objPHPExcel); 
//$objWriter->save("emptyPdfJustYet.pdf"); 

尝试将他们的演示21pdf.php改为相同的结果。

你能帮忙吗?非常感谢!!

1 个答案:

答案 0 :(得分:0)

当我将错误打印到日志时,我意识到它正在尝试从无效位置加载dompdf_config.inc.php。见下文。

C:\瓦帕\ WWW \ MyApp的\应用\卖方\ DOMPDF \ dompdf.php / dompdf_config.inc.php \ n

不是更改PHPExcel的类文件,而是更改视图中的配置。在$ rendererLibraryPath中完全忽略$ rendererLibrary修复了我的问题。我认为PHPExcel知道如何选择dompdf.php文件。尝试以下代码,如果它不起作用,请告诉我们。

你也提供了错误的渲染常量,将PDF_RENDERER_MPDF更改为PDF_RENDERER_DOMPDF。

$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF; 
$rendererLibrary = 'dompdf.php'; 
$rendererLibraryPath = APP . 'Vendor' . DS . 'dompdf';

对于创建编写器对象,我尝试了

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');