如何使用NodeJS和TypeScript从docx生成pdf

5

我正在尝试在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替代方案解决我遇到的问题吗?或者可能有其他免费的替代方案可以使用吗?

非常感谢您的帮助!

2个回答

2
我所知道的最好的方法是使用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中加载它。


0

我曾经成功地使用Puppeteer从HTML文档中渲染PDF。如果您能够将DOCX文件转换为HTML,这可能是一个可行的选择。看起来有选项可以这样做,但我不能保证它们的可靠性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接