使用JavaScript将docx/odt转换为PDF

Converting docx/odt to PDF using JavaScript

本文关键字:转换 PDF odt JavaScript docx 使用      更新时间:2023-09-26

我有一个节点web应用程序,需要将docx文件转换为pdf(仅使用客户端资源,不使用插件(。我找到了一个可能的解决方案,使用docxjs将我的docx转换为HTML,然后使用jspdf将HTML转换为PDF(docx->HTML->PDF(。这个解决方案可以实现,但我遇到了几个问题,尤其是在渲染方面。我知道docxjs在HTML中的呈现方式与docx文件不同,所以这是一个问题。。。

所以我的问题是,你知道有什么免费的模块/解决方案可以直接完成这项工作而不需要经过HTML(我也对odt作为源代码持开放态度(吗?如果没有,你建议我怎么办?

感谢

正如您已经知道的,没有现成的可供使用和打开的库。。使用现有的变体无法获得良好的结果。我的建议是:

  1. 使用第三方API。喜欢https://market.mashape.com/convertapi/word2pdf-1#!文件
  2. 为此创建您自己的服务。如果你有这样的能力,我建议你在node.js上创建一个小型服务器(我打赌你知道怎么做(。你可以使用Libreoffice作为一个良好的转换器,具有良好的渲染质量,如下所示:

    libreoffice -headless -invisible -convert-to pdf {$file_name} -outdir /www-disk/

    不要忘记,这通常需要花费大量时间,不要阻塞请求-回答流:对每个转换操作使用单独的过程。

    还有最后一件事。Libreoffice不是很轻,但质量很好。您还可以找到著名的unoconv工具。

截至2019年1月,有docx-wasm,它在node中工作,并在安装node的本地执行转换。专有但免费增值。

看来,即使三年后,nChen也没有找到答案。也不清楚它是否必须是一个免费的(以美元计(解决方案。

最初的要求是:

仅使用客户端资源,不使用插件

你的意思是你不希望服务器端转换?是的,我希望我的应用程序是完全自主的。

由于所有其他答案/评论都只提供了服务器端组件解决方案,而作者明确表示这不是他们想要的,因此这里有一个建议的答案。

我工作的公司已经有了这种解决方案几年了,它可以在浏览器中完全将DOCX(还不是odt(文件转换为PDF,不需要服务器端组件。目前,它使用asm.js/PNaCl/WAM,具体取决于所使用的浏览器。

https://www.pdftron.com/samples/web/samples/viewing/viewing/

使用上面的演示打开一个办公室文件,你会看到没有服务器通信。一切都是客户端完成的。这个演示也适用于移动浏览器。