我正在使用.docx从模板创建PHPWord文件。它工作正常,但现在我想将生成的文件转换为PDF

首先,我尝试将tcpdfPHPWord结合使用

$wordPdf = \PhpOffice\PhpWord\IOFactory::load($filename.".docx");

\PhpOffice\PhpWord\Settings::setPdfRendererPath(dirname(__FILE__)."/../../Office/tcpdf");
\PhpOffice\PhpWord\Settings::setPdfRendererName('TCPDF');

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

但是当我尝试加载文件以将其转换为PDF时,在加载文件时出现以下异常



经过研究后,我发现其他人也有此错误(phpWord - Cannot add PreserveText in Section)

编辑



我考虑过使用另一种方式来生成PDF,但是我只能找到4种方式:
  • 使用OpenOffice -不可能,因为我无法在服务器上安装任何软件。同样按照提到的方式here也不起作用,因为我的托管人(Strato)使用SunOS作为操作系统,这需要Linux
  • 使用phpdocx -我没有任何预算可支付,该演示无法创建PDF
  • 使用PHPLiveDocx -可以,但是每天限制250个文档,每小时限制20个文档,我不得不一次转换arround 300个文档,甚至一天要转换多次
  • 使用PHP-Digital-Format-Convert -输出看起来比PHPWordtcpdf更好,但是由于缺少图像以及大多数(不是全部!)样式
  • ,仍然无法使用

    有第五种生成PDF的方法吗?还是有什么解决方案可以使生成的PDF文档看起来不错?

    (adsbygoogle = window.adsbygoogle || []).push({});

    最佳答案

    我使用Gears/pdf将phpword生成的docx文件转换为PDF:

    $success = Gears\Pdf::convert(
                'file_path/file_name.docx',
                'file_path/file_name.pdf');
    

    (adsbygoogle = window.adsbygoogle || []).push({});
    09-30 17:09
    查看更多