从docx渲染库问题创建pdf

时间:2016-10-16 15:24:42

标签: pdf doc phpword phpoffice

如果您对此主题有所了解,请发表评论。我想使用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,我也是其他的。 所以如果你有任何想法欢迎。=)

1 个答案:

答案 0 :(得分:0)

经过数小时的搜索和测试后,我得到了工作代码。可能是我不仅需要这个。 对于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根本不起作用( 所以这两个图书馆工作但不好,其中一个给了我“???”当我输入俄语文本。并且它们都在文档中提供了许多不同的可用空间(可能是边距)。我无法理解如何编辑它。