当前位置: 首页 > 知识库问答 >
问题:

PHPWord到PDF无法加载库

充栋
2023-03-14

我一整天都在试着让它发挥作用。现在我可以将文档另存为。docx文件,但我希望能够将文档保存为PDF,我已尝试使用DOMPDF和TCPDF,但不断出现错误“无法加载PDF库”,我确认路径正确。我错过什么了吗?谢谢你的帮助

$rendererName = \PhpOffice\PhpWord\Settings::PDF_RENDERER_TCPDF;
$rendererLibrary = 'tcpdf.php';
$rendererLibraryPath = dirname(__FILE__) .'/plugins/tcpdf/' . $rendererLibrary;

\PhpOffice\PhpWord\Settings::setPdfRenderer($rendererName,$rendererLibraryPath);

$document->saveAs('temp.docx'); // Save to temp file
$test = \PhpOffice\PhpWord\IOFactory::load('temp.docx'); // Read the temp file
$xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($test, 'PDF');
$xmlWriter->save('result.pdf');  // Save to PDF
unlink('temp.docx'); // Delete the temp file

下面是引发错误的代码

  public function __construct(PhpWord $phpWord)
{
    parent::__construct($phpWord);
    $includeFile = Settings::getPdfRendererPath() . '/' . $this->includeFile;
    if (file_exists($includeFile)) {
        /** @noinspection PhpIncludeInspection Dynamic includes */
        require_once $includeFile;
    } else {
        // @codeCoverageIgnoreStart
        // Can't find any test case. Uncomment when found.
        throw new Exception('Unable to load PDF Rendering library');
        // @codeCoverageIgnoreEnd
    }
}

下面是全部错误

致命错误:未捕获异常“PhpOffice\PhpWord\exception\exception”,消息为“无法加载PDF呈现库”/PHPWord/Writer/PDF/AbstractRenderer。php:92堆栈跟踪:#0/PHPWord/Writer/PDF。php(61):PhpOffice\PhpWord\Writer\PDF\AbstractRenderer-

共有3个答案

吴嘉禧
2023-03-14

确保在以下位置发送DOMPDF路径:

$domPdfPath = "..vendor/dompdf/dompdf/";
Settings::setPdfRendererName(Settings::PDF_RENDERER_DOMPDF);
Settings::setPdfRendererPath($domPdfPath); //<---

然后在AbstractReender构造中,如果您回显$this-

如果您没有dompdf_config.inc.php文件,请尝试使用dompdf 0.6.2

魏翔
2023-03-14

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

C:\wamp\www\cccake\app\Vendor\dompd\dompd。php/dompdf\u配置。inc.php\n

明智的做法是更改视图中的配置,而不是更改PHPExcel/PHPWord的类文件。完全忽略$rendererLibraryPath中的$rendererGallery解决了我的问题。我认为PHPExcel/PHPExcel知道如何选择dompdf.php文件(tcpdf.php)在你的情况下。尝试下面的代码让我们知道,如果它不工作。

$renderLibrary='tcpdf。php′$RenderLibraryPath=dirname(文件)。'/插件/tcpdf';

卢开济
2023-03-14

知道这些,我猜答案正在改变:

$includeFile = Settings::getPdfRendererPath() . '/' . $this->includeFile;

$includeFile = Settings::getPdfRendererPath();
 类似资料:
  • 问题内容: 我正在尝试从Web API获取PDF文档,并希望在AngularApp中显示。出现“无法加载PDF文档错误”。我关注了“AngularJS:在角度应用程序中显示blob(.pdf)”一文。而我可以按照“ 使用AngularJS从ASP.NET WebAPI方法下载文件 ”一文中的说明成功下载同一文件。 看起来我正在将文件获取为“编码的分块传输”。尝试在有角度的应用程序中显示时,某种程度

  • 我正在尝试用Tesseract OCR阅读器阅读pdf。不过,它对图像文件非常有效。 以下是我所做的: > 创建一个Maven项目 添加了tess4j版本4.4.1作为依赖项 将java版本更改为13 添加了以下代码: 之后,我发现以下错误: 我该如何着手解决这个问题?

  • 我已经安装了菲奥娜,Shauley,GDAL,RTER和PYPRJ的WHL文件。Geopandas也通过pip安装。但在导入时,我会遇到以下错误: 以及以下错误: 有人能帮我吗?我不知道如何解决这个问题。谢谢和问候。

  • 我无法将数据加载到表中。我有类,其名称为、等。我想将、插入到TextField上的表播放器中。 我正在执行与下面所示完全相同的操作:http://docs.oracle.com/javase/8/javafx/user-interface-tutorial/table-view.htm#cjagaaee 但我不能让它起作用。有人能帮我吗?

  • 我正在运行RSTudio版本1.1.442和r3.5。当我尝试加载rJava时,我得到以下错误; 库(rJava)错误:“r Java”的包或命名空间加载失败:“r Java”的.OnLoad在loadNamespace()中失败,详细信息:调用:dyn.load(文件,DLLpath=DLLpath,...)错误:无法加载共享对象“/library/framework/r.framework/v

  • 应用程序正在启动。获取数据。请稍候...线程“main”java.lang.UnsatisfiedLinkError中出现(约10s)异常:无法加载SWT库。原因:java.library.path中没有swt-cocoa-4236。path中没有swt-cocoa不能加载库:C:\users\andrew.swt\lib\win32\x86_64\swt-cocoa.dll不能加载库:C:\us