【问题标题】:How to generate pdf from docx - NodeJS + TypeScript如何从 docx 生成 pdf - NodeJS + TypeScript
【发布时间】:2021-10-30 04:47:43
【问题描述】:

我正在尝试从之前在 NodeJS 中生成的 DOCX 文件生成 PDF。我正在使用 NestJS 和 TypeScript。 我尝试了很多方法,但都失败了:

  • @nativedocuments/docx-wasm:NativeDocuments 不再工作了。
  • word2pdf:在 github 存档,在 npm 不可用。
  • docx-pdf:生成无样式的 pdf。它删除了我的表格,缩进, 对齐文本等。
  • libreoffice-convert:引发窗口错误: 应用程序无法启动。配置文件“C:/Program Files/LibreOffice/program/bootstrap.ini" 已损坏(但 LibreOffice 软件运行正常)。

您知道我在使用前面提到的 docx 到 pdf 替代品时遇到的问题的一些解决方法吗?或者我可以使用其他一些替代方法(请免费)?

提前谢谢你!

【问题讨论】:

    标签: javascript node.js typescript pdf-generation nestjs


    【解决方案1】:

    我所知道的最好的是使用 Libreoffice。你真的不需要一个包装库。

    你可以直接使用exec执行libreoffice:

    const { exec } = require("child_process");
    
    exec("libreoffice --headless file.xyz", (error, stdout, stderr) => {
        if (error) {
            console.log(`error: ${error.message}`);
            return;
        }
        if (stderr) {
            console.log(`stderr: ${stderr}`);
            return;
        }
        console.log(`stdout: ${stdout}`);
    });
    

    您需要先将 DOCX 写入磁盘上某个位置的文件,Libreoffice 可以在该文件中打开它,生成的 PDF 也会写入磁盘 - 然后您可以使用 fs 将其加载到 Node 中.

    【讨论】:

      【解决方案2】:

      我已经成功使用Puppeteer 从 HTML 文档呈现 PDF。如果您可以设法将 DOCX 文件转换为 HTML,这可能是一个可行的选择。看起来有 options 可以这样做,但我不能为他们担保。

      【讨论】:

        猜你喜欢
        • 2016-01-10
        • 2012-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        • 2020-10-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多