【问题标题】:Convert docx to pdf using PHP使用 PHP 将 docx 转换为 pdf
【发布时间】:2012-02-15 18:23:23
【问题描述】:

我目前正在使用 PHPWord 生成多个 .docx 文件。我需要找到一种方法来组合这些 docx 文件并将它们保存为 1 个 pdf 文件。有没有办法做到这一点?

【问题讨论】:

    标签: php


    【解决方案1】:

    用PHPDOCX http://www.phpdocx.com/打开生成的docx

        require_once 'phpdocx_pro/classes/TransformDoc.inc';
        $docx = new TransformDoc();
        $docx->setStrFile('document.docx');
        $docx->generateXHTML();
        $html = $docx->getStrXHTML();
    

    此外,您可以使用以下命令将 docx 导出为 PDF

        $docx->generatePDF();
    

    请注意,这不是免费库

    【讨论】:

    • 是的,如果我要这样做,我还不如购买 PHPDOCX 并使用它来生成 docx。无论如何,我都在考虑这样做;只是想看看是否有免费的替代品。我也不喜欢为每个域/子域购买新许可证。
    • 我刚刚尝试过,但效果不佳...我从 WORD2007 文档开始,使用 PHPWord 生成(包含表格、照片...但没有图表),您的 PHPDOCX 生成一个PDF文件但显示了一些数据但不是全部(实际上,大部分数据都没有显示)并且根本没有图像......您可以在这里看到:来自[链接]box.com/s/cbf2243c6cb0cf782a08并且使用您的代码转换的PDF是: [链接]box.com/s/600a4f83d4db987baa1e
    • 太糟糕了,这不适用于 phpdocx 的社区版本。 “找不到类 'DOMPDF'”
    • 我想你应该在你的回答中提到它不是免费的
    • 你有其他免费的解决方案吗?
    【解决方案2】:
      /**
       * return the pdf stream as a string returned from the function
       */
      function  output($debug = false) {
      ...
      }
    

    所以只需将“generatePDF()”的结果写入文件即可。

    例如:

    $content = $docx->generatePDF();
    $myfile = fopen("newfile.pdf", "w");
    fwrite($myfile, $content);
    fclose($myfile);
    

    【讨论】:

      猜你喜欢
      • 2017-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      • 2019-02-22
      • 2015-05-19
      • 2015-10-14
      • 2017-08-17
      相关资源
      最近更新 更多