我想实现一个浏览器内的 Microsoft Word 文档合并功能,它将合并的文档转换为 PDF 并将其提供给用户以供下载。我希望 Google Chrome 和 Firefox 支持此过程。这是我希望它的工作方式:
- 客户端 JavaScript 从服务器获取 docx 格式的 Word 模板文档,或者通过要求用户上传文件(然后可以使用 FileReader API 读取)
- JavaScript 使用其本地数据结构(例如,它通过 Ajax 获得的数据列表)将模板扩展为文档。它可以直接执行此操作,通过解压缩 docx 文件并处理其内容,或使用 DOCx.js。模板扩展只是用从本地数据结构中获得的值替换模板变量的问题。
- JavaScript 然后将扩展的模板转换为 PDF。
- JavaScript 向用户提供 PDF 文件以供下载,例如,使用 Downloadify。
我遇到的困难在于第 3 步。我的理解(基于我到目前为止所做的所有谷歌搜索)是我有以下选择:
- 要求本地机器是Windows机器,并在其上调用Word,转换为PDF。这可以通过使用 WScript.shell 编写一点脚本来完成,而且在 Internet Explorer 上看起来也是可行的。但是根据我所读到的内容,由于安全限制,我似乎无法从 Chrome 或 Firefox 中调用 WScript.shell。
- 我愿意尝试 Silverlight 进行转换,但我还没有找到足够的文档来说明如何做到这一点。理想情况下,如果我使用 Silverlight,我想用 JavaScript 编写 Silverlight 代码,因为 (a) 我不太了解 CSharp,并且 (b) 我认为用 JavaScript 会容易得多。
- 创建一个将给定 docx 文件转换为 pdf 文件的 Web 服务,并通过 Ajax 调用该服务。如果可能的话,我宁愿不这样做,原因如下: (a) 我尝试使用docx4java(我是一个相当熟练的 Java 程序员),但是转换过程太慢了,而且它不能很好地保留文档内容;(b) 我想避免呼叫网络,以避免安全问题。似乎可以在 Windows 服务器上编写一个小服务来进行转换,如果没有其他好的选择,我可能会走那条路。
如果我有什么不清楚的地方,请告诉我。我会很感激你的想法和反馈。