【问题标题】:Creating pdf from docx rendering library issue从 docx 渲染库问题创建 pdf
【发布时间】:2017-02-25 14:03:14
【问题描述】:

如果您对此主题有所了解,请发表评论。我正在尝试使用 phpoffice/word 从 docx 获取 pdf 文件。但我不能让它成为现实,因为一整天的测试我只得到这个错误:

PHP Fatal error:  Uncaught exception 'PhpOffice\PhpWord\Exception\Exception' with message 'PDF rendering library or library path has not been defined.

请不要告诉我在 www 中查看这个问题,我试过了 - 没有任何帮助。我的代码:

require './vendor/autoload.php';
require './vendor/phpoffice/phpword/bootstrap.php';
$filename = 'example';
echo PHPWORD_BASE_DIR . '/TCPDF-master';
$wordPdf = \PhpOffice\PhpWord\IOFactory::load("./file_to_fill/ДКП квартира физики.docx");
$rendererName = \PhpOffice\PhpWord\Settings::PDF_RENDERER_TCPDF;
$rendererLibrary = 'TCPDF';
$rendererLibraryPath = dirname(__FILE__).'/'. $rendererLibrary;
\PhpOffice\PhpWord\Settings::setPdfRendererPath($rendererLibraryPath);
\PhpOffice\PhpWord\Settings::setPdfRendererName('TCPDF');

$pdfWriter = \PhpOffice\PhpWord\IOFactory::createWriter($wordPdf , 'PDF');
if (file_exists($filename.".pdf")) unlink($filename.".pdf");
$pdfWriter->save($filename.".pdf"); 

我知道我的问题是库,但我真的不明白这个库的文件在哪里。可能是因为今天我第一次尝试与作曲家合作。我尝试了不同的库,例如 dompdf 和 TCPDF,我也尝试了其他库。 因此,如果您有任何想法欢迎。=)

【问题讨论】:

    标签: pdf doc phpword phpoffice


    【解决方案1】:

    因此,经过数小时的搜索和测试,我得到了工作代码。可能我不仅仅是一个需要这个。 对于 TCPDF 库:

    define('PHPWORD_BASE_DIR', realpath(__DIR__));    
    require './vendor/autoload.php';
    require './TCPDF-master/tcpdf.php';
    $PdfPath = realpath(PHPWORD_BASE_DIR . '/TCPDF-master');
    \PhpOffice\PhpWord\Settings::setPdfRendererPath($PdfPath);
    \PhpOffice\PhpWord\Settings::setPdfRendererName('TCPDF');
    $phpWord = \PhpOffice\PhpWord\IOFactory::load('yourtemplate.docx');
    $xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord , 'PDF');
    $xmlWriter->save('result.pdf');
    

    对于 mpdf 库:

    define('PHPWORD_BASE_DIR', realpath(__DIR__));
    require './vendor/autoload.php';
    require './vendor/mpdf/mpdf/mpdf.php';
    $PdfPath = realpath(PHPWORD_BASE_DIR . '/vendor/mpdf/mpdf');
    \PhpOffice\PhpWord\Settings::setPdfRendererPath($PdfPath);
    \PhpOffice\PhpWord\Settings::setPdfRendererName('MPDF');
    $phpWord = \PhpOffice\PhpWord\IOFactory::load('temp.docx');
    $xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord , 'PDF');
    $xmlWriter->save('result.pdf');  
    

    但是 domPDF 根本不起作用( 所以这两个库有效但不好,其中一个给了我“???”当我输入俄语文本时。而且它们都在文档中提供了很多不同的可用空间(可能是边距)。我无法理解如何编辑它。

    【讨论】:

      猜你喜欢
      • 2013-05-14
      • 2018-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-06
      • 2018-04-20
      • 2015-02-12
      相关资源
      最近更新 更多