根据NVeloDocx Word模板引擎生成Word(三)

基于永久免费开放的《E6低代码开发平台》的Word模版引擎NVeloDocx,实现根据Word模版生成Word文件,前面2篇已经非常详细介绍了《主表单字段》《子表记录循环输入到表格》。那这一篇我们就介绍插入单张图片、二维码,条形码等等,它们同样的简单,我们在设计每一个方法的时候都尽可能设计得简单易用,因为毕竟E6低代码的用户绝大部分都是毫无代码经验的人士:

单张图片在E6低代码开发平台中对应找一个单张图片框,类似于下图的头像,这种单张图片有自己的数据库字段名:

单张图片

由于有自己的数据库字段名,所以我们就可以用主表字段取数的方式获取到这张图片,如(这里取到的是图片的系统内存储路径):

${data.GetValue("HeaderImg")}

取到了图片之后我们就可以使用扩展的方法word.InsertImg在需要的位置插入图片了:

{word.InsertImg({data.GetValue("HeaderImg")}, 33, 32)}

${word...} 包括插入图片、插入条形码、插入二维码、插入图表等等一系列的扩展方法,其中word.InsertImg包括3个参数,非常易于理解:

参数1:就是我们的图片路径;

参数2:表示图片在word中显示的宽度(单位是毫米);

参数3:表示图片在word中显示的高度(单位是毫米)。

模版如下:

插图图片的模版

插入图片的效果如图:

生成Word文档的效果

二维码和条形码在E6中只会存储二维码和条形码的数据,而不会存储相关的图片,是在需要的时候才会生成码图。

所以要插入二维码,那么我们需要使用到word.InsertQRCode扩展方法,如下:

{word.InsertQRCode({data.GetValue("WebSite")},25,25)}

word.InsertQRCode方法同样包括3个参数:

参数1 :二维码内容()可以使用主表取数方法${data.GetValue("WebSite")}取得要生成的二维码的字符串,可以使用"+"拼接多个字段;

参数2:表示二维码在word中显示的宽度(单位是毫米);

参数3:表示二维码在word中显示高度(单位是毫米)。

模版如下:

效果图如下:

插入条形码用到扩展方法word.InsertBarChart,这个方法和插入二维码的完全相同,区别在于只有数字才能生成条形码,如果是其他字符串那生成出错。所以插图条形码的就不再细述了。


后记:

由于NVeloDocx基于NVelocity模版引擎,所以我们只要了解NVelocity那么就能够轻松使用NVeloDocx。另外由于基于模版引擎,所以我们同样可以再页眉页脚中使用模版标签,在页面页脚中插入文字、图片,二维码,调下码等等。

下面就是一个在页面中插图二维码的例子:

页眉中插入二维码

页眉中插入二维码的效果图

基于NVeloDocx,使得以前使用书签,占位符,甚至编辑word xml才能导出word文档的工作变得非常轻松且可视化。

书签和占位符都有极多的局限性,特别是涉及到子表遍历,条件显示、内容格式等等的时候极其困难,不得不为了解决这些问题定义很多奇奇怪怪的标签。所以采用书签和占位符的方法基本上只有硬编码的场景下才适用。

编辑Word Xml的方法确实可以很好地保留格式,并且结合NVelocity等模版引擎可以实现几乎我们想要实现的Word文档生成,但是要在一个几千行的Word xml文件中去增加标签,去增加循环等等是非常非常困难的,就连我们的开发人员也都非常头疼。特别是后期Word模版哪怕一个小小的变更都可能需要完全重新制作xml模版。

基于NVeloDocx,一切都变得可视化,高效而精确!

基于NVeloDocx,使得E6的用户人人都可以编辑自己的Word模版;

基于NVeloDocx,扩展变得更简单;

相关推荐
中金快讯9 小时前
word怎么删除空白页?word最后一页删不掉怎么办
word
学软件的小铃铛13 小时前
解决word里插入公式后打不开的问题
word
源梦想1 天前
如何统一修改word中所有英文字母的字体格式
word
诸葛小猿2 天前
Pdf转Word案例(java)
java·pdf·word·格式转换
爱喝一杯白开水2 天前
使用 Apache POI 生成包含文本和图片的 Word 文档
word·apache·poi·导出
搜移IT科技2 天前
word怎么删除空白页?word最后一页删不掉怎么办
word
源梦想2 天前
Word如何制作三线表格
word
tangjunjun-owen2 天前
第三章:langchain加载word文档构建RAG检索教程(基于FAISS库为例)
langchain·llm·word·faiss·rag
bu_shuo3 天前
Edge浏览器PDF字体显示错误
pdf·word·渲染错误
dbkx_293 天前
Word域操作记录(从1开始的毕业论文格式排版)
word