我想让Docxtemplater.js在浏览器上运行。
不幸的是,我不知道Node.js,Browserify.js," npm"," bower"这些东西,以及那些出现在那些好东西中的东西和酷的现代JS库。我想了解它们,但将来......现在我只想让这个Docxtemplater.js工作。
在页面底部,他们展示了如何使用npm,但我不想要,所以我去了Quickstart In The Browser。我一定做错了,因为它不起作用。
这就是我所做的:
我创建了一个名为testpage.html
的文件,其中包含以下内容:
<html><body>
<script src="build/docxtemplater.js"></script>
<script src="vendor/FileSaver.min.js"></script>
<script src="vendor/jszip-utils.js"></script>
<script>
var loadFile = function(url,callback) {
JSZipUtils.getBinaryContent(url,callback);
}
loadFile("examples/tagExample.docx", function(err, content) {
if (err) { throw e };
doc = new Docxtemplater(content);
doc.setData({
"first_name": "Hipp",
"last_name": "Edgar",
"phone": "0652455478",
"description": "New Website"
}); //set the templateVariables
doc.render(); //apply them (replace all occurences of {first_name} by Hipp, ...)
out=doc.getZip().generate({type:"blob"}); //Output the document using Data-URI
saveAs(out,"output.docx");
});
</script>
</body></html>
我创建了一个文件夹build
并将文件docxtemplater.js
放在那里,从here下载,特别是原始文件docxtemplater.v2.1.3.min.js(当然我将其重命名为docxtemplater.js
)。
我创建了一个文件夹vendor
并将文件FileSaver.min.js
和jszip-utils.js
放在那里,这两个文件都来自here。
我创建了一个文件夹examples
并将文件tagExample.docx
放在那里,取自here。
这正是我所做的。我没有添加任何其他文件或文件夹,或任何其他内容。
然后,我在Windows 7上使用我的Firefox 47.0.1打开了文件testpage.html
。控制台打开后,出现以下错误消息:
ReferenceError: Docxtemplater is not defined
- 在这一行:doc = new Docxtemplater(content);
答案 0 :(得分:1)
我找到了解决方案:只需将new Docxtemplater(content)
替换为new Docxgen(content)
。
这种情况只发生在downloading the JS build directly from github,就像我一样。
我opened an issue关于它,现在这是properly documented in Readme.md:
如果你从那里下载JS,你应该使用新的Docxgen()而不是新的Docxtemplater(),因为我不想对docxtemplater-build存储库中的次要版本更改进行重大更改。
似乎&#34; Docxgen&#34;是图书馆的旧名称,现在更名为&#34; Docxtemplater&#34;。