我正在努力完成一项不可能完成的任务。我需要在ServiceNow(服务器端(上生成docx文档,它实现了Javascript Rhino引擎。在客户端做这件事非常容易,我通常使用docxtemplator或类似的伟大库。这里的问题是,我们需要在服务器上使用ServiceNow技术(包括脚本等(构建它。也就是说,我正在尝试移植客户端docxtemplator版本,但我很挣扎,因为在服务器上没有DOM的概念。同时,使用服务器端版本也很困难,因为ServiceNow不使用Node.js,而是使用Rhino,而且所有库都是基于Node的。使用vanilla js,我能做的最好的事情就是生成一个数据uri,当从浏览器下载时,它会返回一个docx文档,但我想知道是否有人有任何建议。非常感谢。
至少有两种方法可以实现这一点。一种是接受噩梦,要么将OpenXmlJS库转换为ES5兼容性,要么重写它们。另一种方法是创建一个MS Word模板,编码为Base64文本(作为压缩的XML(并保存在ServiceNow中,然后使用ServiceNow XMLDocument2库解压缩并遍历XML以更新文本。最后,重新压缩并保存该文件,以创建更新的OpenXml文档。
第二个解决方案要求您在ES5中获得JSZip。
我的解决方案的源代码目前是专有的,我不能自由分享,但它是可以做到的。只要确保你有足够大的预算,因为这不是小事,而且需要相当长的时间来实施。