国产linux系统(银河麒麟,统信uos)使用 PageOffice 在线打开 word文件动态插入图片并设置大小

PageOffice 国产版 :支持信创系统,支持银河麒麟 V10 和统信 UOS,支持 X86(intel、兆芯、海光等)、ARM(飞腾、鲲鹏、麒麟等)、龙芯(LoogArch)芯片架构。

查看本示例演示效果
本示例关键代码的编写位置
Vue+Springboot

注意
本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。

在实际项目涉及到 Word 文档的开发中,常常会遇到希望自动填充各项数据到 Word 模板中,动态生成 Word 文档的需求。比如说生成一份简历,数据库表已经保存了个人的资料信息,有很多的简历模板,用户先选择意向模板,然后把个人信息填充到 Word 模板中生成自己的个人简历,同时还希望在照片位置插入个人照片,通过调用 PageOffice 操作数据区域的函数,就可以实现此目的。

首先,编辑 Word 模板,即在 Word 文档中添加书签。在 D 盘根目录下新建 Word 文件,比如:D:\template1.docx,打开文件用光标选中需要标记为书签的文字,比如“[照片]”,然后点 Word 菜单中的“插入”-“书签”,就会弹出一个标题为“书签”的对话框(如下图所示),输入新书签的名称,注意:书签名必须以“PO_”开头,并由字母和数字组成,但中间不能有空格。点右侧的“添加”按钮,新的书签名将出现在下面的列表中。

然后,在 D 盘根目录下准备一张图片文件,比如:D:\ZhaoPian.png

image

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

然后,编写代码打开 template1.docx 文件,动态填充图片到数据区域,并设置图片的尺寸,单位是:英磅。

后端

PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);

WordDocumentWriter doc = new WordDocumentWriter();
DataRegionWriter dataRegion1 = doc.openDataRegion("PO_Photo");// 打开数据区域 "PO_Photo"
// [image] 标签中的 width 和 height 属性的单位是:英磅
dataRegion1.setValue("[image width=150 height=200]D:\ZhaoPian.png[/image]");

poCtrl.setWriter(doc);// 必须。

// 打开 Word 文件
poCtrl.webOpen("D:\template1.docx", OpenModeType.docNormalEdit, "张三");