PageOffice动态给word插入二维码(或条形码)图片

在实际的项目开发中,经常需要将各种数据动态填充到Word文档中生成自定义的文档,比如生成一份合同,用户可以选择指定的合同模板,然后由Web系统的把某个合同相关数据信息动态填充到合同模板中的对应位置,生成一份正式合同文件,同时还希望在合同模板中预留的二维码位置插入由系统生成的二维码,便于以后对合同的检索和电子化管理。那么,通过调用PageOffice给数据区域填充图片的功能,就可以很方便地实现此需求。

首先,新建一个Word合同模板,将需要动态填充数据的位置添加数据区域(也就是"PO_"开头的书签) 。比如新建一个Word模板"template1.docx",打开该文件,定位光标到需要插入二维码的位置,比如选中文字"二维码",然后在Word菜单中选择"插入"-"书签",弹出"书签"对话框,输入书签名称。需要注意的是,书签名必须以"PO_"开头,并由字母和数字组成,但中间不能有空格。最后点击"添加"按钮,新的书签名将出现在下面的书签列表中。当前模板在正文和页眉中分别插入了一个"二维码"的数据区域。(如下图所示)

注意

在使用PageOffice开发的过程中,为了避免出现与用户自己定义的书签出现冲突,要求插入的书签名称必须以"PO_"开头。注意是字母o,不是数字0。在PageOffice的概念里提到的数据区域,本质上就是书签,但是只有"PO_"开头的书签才叫数据区域。

然后,编写代码打开template1.docx文件,并动态填充二维码图片到数据区域。与正文中数据区域填充二维码不同的是,在页眉中插入的二维码图片会在每页的页眉出现。效果如下图所示:

后端代码

假设,Web系统生成二维码图片的后端接口地址是:/genQRCode?id=xxxxxx

java 复制代码
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);

WordDocumentWriter doc = new WordDocumentWriter();
doc.openDataRegion("PO_QRCode1").setValue("[image]/genQRCode?id=xxxxxx[/image]");
doc.openDataRegion("PO_QRCode2").setValue("[image]/genQRCode?id=xxxxxx[/image]");
  
poCtrl.setWriter(doc); // 必须。
poCtrl.webOpen("D:\\template1.docx", OpenModeType.docNormalEdit, "张佚名");

原文地址:https://www.pageoffice.cn/pages/b003e1/

相关推荐
weixin_416660074 小时前
多个 Markdown 文件批量转 Word:PowerShell + Pandoc,连同图片和公式一起检查
word·豆包·deepseek
必须得开心呀4 小时前
为什么 python-docx 打不开加密的 .docx,Word COM 却能打开
python·word
扶风ff5 小时前
练题簿在线免费刷题:会员线下组卷、Word 试卷与成绩导入,课堂检测更方便
java·开发语言·算法·小程序·word
我最爱吃鱼香茄子7 小时前
【毕业设计优选】人力资源管理系统|Java|SpringBoot|Vue|前后端分离|带详细文档+部署教学视频
java·vue·毕业设计·springboot
weixin_416660071 天前
AI 的 Markdown 复杂表格转 Word:单元格换行、合并与长文本怎么处理
人工智能·word·deepseek·鲸鱼ai助手
copilot中国版1 天前
Word Copilot|法律文书生产力引擎
word·copilot
骑着蜗牛撵大象3271 天前
SpringBoot+Vue3 企业智能体侧挂架构:独立服务、独立数据库与主线零侵入落地
数据库·spring boot·架构·vue·springboot·事件驱动·服务拆分
小羊没烦恼!1 天前
Windows Azure Platform体验(1):Windows Azure
java·大数据·后端·python·flask·word·.net
开开心心就好2 天前
本地文件搜索工具推荐,占用小速度还快
智能手机·ffmpeg·ocr·word·音视频·网络攻击模型·安全架构
xy34532 天前
word技能--中文word文档通用格式标准化
word