【问题标题】:Cakephp 2.6.1, PHPExcel "Unable to load PDF Rendering library"Cakephp 2.6.1,PHPExcel“无法加载 PDF 渲染库”
【发布时间】:2015-03-18 02:07:35
【问题描述】:

在同一个项目中,我使用 phpExcel 来生成 excel 文件就好了。

PHPExcel 文件位置:

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

也在同一个项目上,我单独使用 dompdf 来生成 pdf 文件就好了(不是通过 PHPExcel)。我非常喜欢 PHPExcel 允许构建 excel 文件的方式,所以我也想通过 PHPExcel 创建 pdf。

dompdf 文件位置:

C:\wamp\www\circulo\app\Vendor\dompdf\

通过调试器的路径似乎正确 => C:\wamp\www\circulo\app\Vendor\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 以获得相同的结果。

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

【问题讨论】:

    标签: cakephp pdf phpexcel


    【解决方案1】:

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

    C:\wamp\www\myapp\app\Vendor\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';
    

    对于创建 writer 对象,我尝试过

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

    【讨论】:

      猜你喜欢
      • 2020-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多