【问题标题】:How to use Mpdf library with PHPword. How can I generate .docx file to .pdf file如何在 PHPword 中使用 Mpdf 库。如何将 .docx 文件生成为 .pdf 文件
【发布时间】:2021-03-13 02:45:18
【问题描述】:

我有问题。当我尝试在 Laravel (PHP) 上使用库 mPDF 将 word.docx 文件生成为 pdfFile.pdf 文件时,出现此错误:

PDF 渲染库或库路径尚未定义。

我找不到解决方案。请帮帮我。提前谢谢你。

我在 PHP 控制器文件中的代码:

public function wordToPdf(){
    $domPdfPath = base_path('vendor/mpdf/mpdf');
    \PhpOffice\PhpWord\Settings::setPdfRendererPath($domPdfPath);
    \PhpOffice\PhpWord\Settings::setPdfRendererName('mPDF');
    
    //Load word file
    $Content = \PhpOffice\PhpWord\IOFactory::load(public_path( '/uploads/word/no12.docx'));
    
    //Save it into PDF
    $PDFWriter = \PhpOffice\PhpWord\IOFactory::createWriter($Content,'PDF');
    $PDFWriter->save(public_path( '/uploads/word/result3.pdf'));
    return $PDFWriter;
}

如果有人知道,请帮助我..?

【问题讨论】:

    标签: php laravel mpdf doc phpword


    【解决方案1】:

    我遇到了同样的问题,但库不同,这是因为 Laravel 找不到您的 PDF 渲染库的基本路径,并且在您的错误中很清楚。

    您所要做的就是为您的 domPDF 定义一个路径。更好的方法是定义一个常量然后访问它。以下是你的做法:

    1. 在您的config 文件夹中使用您想要的任何名称创建一个文件,constants.php 将是一个很好的做法,因为您正在为您的应用定义常量。
    2. 在该文件'your_var_name' => realpath(__DIR__), 中定义一个常量。
    3. 在您的 cmd 中运行这些命令:php artisan config:cachephp artisan cache:clear 以清除和缓存最新的配置。
    4. 现在在您的控制器中设置以下设置:

    代码

    // access your constant using laravel's helper config();
    $domPdfPath = realpath(config('constant.your_var_name').'/../vendor/dompdf/dompdf');
    
    Settings::setPdfRendererPath($domPdfPath);
    
    Settings::setPdfRendererName('DomPDF');
    

    【讨论】:

    • 感谢您的回答。在 DOMPDF 上这工作正常,但在 mPDF 上返回此错误。我可以将此方法与 mPDF 一起使用吗??
    • 不客气,尝试一下也无妨。 :) 你要明白错误是想告诉你什么,laravel是找不到pdf渲染库的路径来生成pdf的。您可以使用 mPDF 进行尝试。我不能肯定地告诉你它会起作用,因为我从来没有使用过那个库。
    • 我明白:))。谢谢您的回答。祝你好运。
    • 没问题!祝你好运,编码愉快! :)
    猜你喜欢
    • 2017-07-06
    • 2020-08-14
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 2017-04-14
    相关资源
    最近更新 更多