我有一个节点网络应用程序需要将docx文件转换为pdf(仅使用客户端资源而没有插件)。通过使用docxjs将我的docx转换为HTML,然后使用jspdf(docx-> HTML-> PDF)将HTML转换为PDF,我找到了一种可能的解决方案。 这个解决方案可以实现,但我遇到了几个问题,特别是渲染。我知道docxjs不会在HTML中保持与docx文件相同的渲染,所以这是一个问题......
所以我的问题是你知道任何可以直接完成这项工作的免费模块/解决方案而不需要通过HTML(我也可以将odt视为源代码)吗?如果没有,你会建议我做什么?
由于
答案 0 :(得分:7)
正如您已经知道的那样,没有现成的和开放的库。您可能无法通过可用的变体获得良好的结果。我的建议是:
为此目的创建自己的服务。如果你有这样的能力,我建议在node.js上创建一个小服务器(我打赌你知道怎么做)。您可以将Libreoffice用作具有良好渲染质量的良好转换器,如下所示:
libreoffice -headless -invisible -convert-to pdf {$file_name} -outdir /www-disk/
不要忘记这通常需要花费很多时间,不要阻止请求 - 应答流程:对每个转换操作使用单独的进程。
最后一件事。 Libreoffice不是很轻巧但质量很好。您还可以找到值得注意的unoconv
工具。
自2019年1月起,有docx-wasm,它在节点中工作,并在本地执行转换,其中安装了节点。专有但免费增值。
答案 1 :(得分:0)
看来,即使三年后,恩科恩仍未找到答案。还不清楚它是否必须是免费的(以美元计)解决方案。
原始要求是:
仅使用客户端资源,不使用插件
您是不是要服务器端转换?是的,我希望我的应用程序完全自主。
由于所有其他答案/评论仅提供服务器端组件解决方案,而作者明确指出这不是他们想要的,因此这里是一个建议的答案。
我工作的公司已经有此解决方案几年了,该解决方案可以在浏览器中将DOCX(尚未更改)文件完全转换为PDF,而无需服务器端组件。当前,根据所使用的确切浏览器,使用asm.js / PNaCl / WASM。
https://www.pdftron.com/samples/web/samples/viewing/viewing/
使用上面的演示打开办公文件,您将看不到服务器通信。一切都在客户端完成。该演示还可以在移动浏览器上使用。