根据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,扩展变得更简单;

相关推荐
eybk2 天前
拖放WORD文件朗读全文
开发语言·c#·word
codelife3212 天前
记录word转xml文件踩坑
xml·word
老田低代码2 天前
根据NVeloDocx Word模板引擎生成Word(五)
开发语言·c#·word
xuanyu222 天前
Word使用手册
word
忧郁的蛋~2 天前
asp.net core调用wps实现word转pdf的方法
pdf·word·wps
zhangdabai13 天前
在Word中,用VBA比较两段文本的相似度
word·wps
weixin_457703923 天前
如何设置word页码从指定页开始
word
老田低代码3 天前
根据NVeloDocx Word模板引擎生成Word(六-结束)
word
uolian3 天前
WORD批量转换器MultiDoc Converter
word