问题标签 [docxtemplater]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Docxtemplater插入纯xml
我正在使用edi9999 的 DocxTemplater 库作为从模板和 JSON 数据创建 .docx 报告的解决方案,对此我很满意。
但是,现在我必须在我的报告中突出显示一些词。例如,我需要{contents}
用一些大文本替换,其中突出显示的单词很少。
这意味着我在这里有两个解决方案:
- 在我的数据中使用某种标记(例如
in this data one {highlight(red)}{word} is red
,然后由 DocxTemplater. - 直接用所需的 xml 替换标签。例如,我用这个 xml 替换(作为字段
{contents}
存储在我的 JSON 数据中) :. 如果我现在这样做,我会将我的 XML 嵌入到 中,以便 MS Word 认为该文件已损坏。"contents"
<w:r> <w:rPr> <w:highlight w:val="cyan"/> </w:rPr> <w:t>lol</w:t> </w:r>
<w:r><w:t>HERE</w:t></w:r>
对于“原始” xml 数据,我想使用某种特殊标记,例如{@myXmlData}
,这将防止库使用<w:r><w:t></w:t></w:r>
.
我认为第二种解决方案在很多方面都优越而且非常灵活:它允许用户使用 DocxTemplater,即使它不能满足他们的某些需求。他们可以只使用 XML 来满足他们非常特殊的需求。
我认为这对于 DocxTemplater 库来说确实是一个很棒的新功能。
但是,现在我只想解决我的问题,我没有时间彻底研究或修改库的代码。
如果有人指出库代码中的位置以及如何轻松扩展它以添加此功能的想法,那就太好了。
编辑:现在支持此功能!查看https://github.com/edi9999/docxtemplater/issues/7
javascript - 处理 docXTemplater 或 javascript 对象数组中的未定义值
我有一个对象数组,将通过 DocXTemplater 导出到 word 文档
样本数组
现在 DocXTemplate 将是
这将输出,
现在我想过滤所有未定义并用空字符串或一些自定义字符串替换它们,这如何在 DocXTemplater 中完成,或者对象数组中的所有未定义都可以替换为自定义字符串?
node.js - 使用 nodeJs 和 docxtemplater 更新 .docx 中的 TOC(目录)
Microsoft Word工具具有禁用宏的默认隐私设置,并且未选中受信任的VB 脚本。因此,为了告诉用户允许通过更改设置将宏附加到文档文件,编写宏(VB 脚本)来更新字段并不是一个好主意。
打开生成的Docx 文件并按'alt' + 'F9'。此命令将显示所有域代码。我们将使用域代码“ {NUMPAGES} ”(带花括号)来表示总页数。注意,页脚和页眉是自动更新字段(打开文档后自动更新字段),但对于 TOC,我们不能将其放在页眉或页脚中。关闭文档文件。
在您为{NUMPAGES}使用xml标记的代码中,将脏设置为true,即,
在 Docx 模板文件中,使用{@totalPages}映射 xml 值。var totalPages = '<w:instrText w:instr="TOC" w:dirty="true"> NUMPAGES </w:instrText>
docx文件实际上是一个zip文件,将模板文档文件从“.docx”重命名为“.zip”。您会在 zip 中找到几个文件夹和文件。文件夹“word”包含您的主要document.xml(文档文件内容)和settings.xml(文档文件设置)文件。打开'settings.xml',并<w:updateFields w:val="true" />
在<w:settings>
标签下写确保你之前写过上面的代码</w:settings>
。这将要求用户在打开 docx 文件时更新字段,这是因为我们在“settings.xml”文件中将updateFields值设置为true。现在保存“settings.xml”并更新 zip 文件(如果询问)。改名zip 文件回到“.docx”。现在生成 docx 文件,它将自动更新所有字段。
javascript - 文档模板。嵌套对象
我正在使用https://github.com/open-xml-templating/docxtemplater
我的数据:
如何使用这个嵌套对象在 docx 中编写语法?
这不起作用:
在文档中找不到任何示例。
xpages - Configuration of the javascript library docxtemplater in XPages
I'm trying to use the library docxtemplater in an XPages application.
Javascript library docxtemplater (https://docxtemplater.com/) use as a
dependency another library opensource jszip-utils.js
(http://stuk.github.io/jszip/) to zip and unzip the docx files.
The problem is that the javascript library jszip-utils.js in XPages is not
working .
I inserted javascript libraries in a folder (jslib) who is under the WebContent folder.
Here's my test page;
Has anyone dealt with the problem?
javascript - 如何使 docxtemplater 与 angular-fullstack 一起工作?
我对你的发电机角全栈相当陌生。我面临的问题是我想使用 docxtemplater。我做了
和
在 app.js 中
并使用
在 testdoc.component.js
我收到以下错误
错误:[$injector:modulerr] 无法实例化模块 newApp,原因是:[$injector:modulerr] 无法实例化模块函数 Docxtemplater(content, options),原因是:[$injector:strictdi] Docxtemplater 没有使用显式注释并且不能在严格模式下调用 http://errors.angularjs.org/1.5.8/ $injector/strictdi?p0=Docxtemplater
有什么解决办法吗?我只需要安装这个。:(
另外,如果这不起作用,是否有任何其他库可以从可以导入 angular-fullstack 的模板中生成 docx 文件?
json - 从服务器重构 docxtemplater,在 doc.setData() 中停止访问 req json 对象
我正在尝试从节点中的服务器文件中重构 docxtemplater 代码。req.body json 对象在那里工作正常,甚至可以在 doc.setData() 方法中进行console.logged。但是,当我尝试运行服务器时,出现此错误:
这是我的 docxtemplater.js 文件。
javascript - 使用 docxtemplater 换行或打断标签
我正在使用docxtemplater将 JSON 数据转换为 word 文档。文档生成正常。
这是我的模板
它生成包含所有部分的 docx 文件,但“\n”新行和
标签在文档中逐字打印。
我需要将新行解释为新行。
目前其印刷为
在word文档中..任何想法如何将其打印为
感谢任何帮助。
angular - Angular2下载的docx响应正文为空
我正在使用 Angular2 从我的快速服务器下载生成的 .docx 文件。该文件由工具生成并保存在服务器上,然后发送到前端。
我的浏览器日志显示结果的长度大于 0,但发送的 blob 没有正文,因此无法找到文档的实际内容。
我已经关注了几个示例和教程,尤其是这个,但到目前为止还没有结果。我究竟做错了什么?
快递后台:
Angular2服务:
Angular2组件:
在 Chrome 控制台中记录的 Blob 内容:
所以......没有内容的大小。帮助是apreciated!