当前位置: 首页 > news >正文

国产linux系统(银河麒麟,统信uos)使用 PageOffice 动态生成word文件

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

数据区域填充文本
数据区域插入图片
数据区域插入Word文档

本示例关键代码的编写位置
Vue+Springboot

在实际的Word文档开发中,经常需要自动填充数据到Word模板中,以生成动态的Word文档。
例如,我们可以根据数据库表中已保存的个人信息,设计好一个简历模板docx文件,然后通过代码将这些个人信息以及个人照片填充到Word模板中,从而自动生成一份简历。
有时候还需要将多个word文件插入到Word模板指定位置,生成一个合并文档的效果,则需要用到数据区域中插入word文档功能。要实现这一功能,可以利用PageOffice提供的操作数据区域的对象。

首先,需要编辑Word模板,在其中添加书签。例如,在D盘根目录下新建一个Word文件,命名为template1.docx。打开该文件后,可以通过选中需要标记为书签的文字,例如“[用户名]”、“[照片]”、“[段落]”等等,然后点击Word菜单中的“插入”-“书签”来添加书签。在弹出的“书签”对话框中,输入新书签的名称,并点击右侧的“添加”按钮。需要注意的是,书签名必须以“PO_”开头,并由字母和数字组成,但中间不能有空格。建议按照上述说明手动创建template1.docx并设置书签。
然后,在D盘根目录下准备一张图片文件,比如:D:\ZhaoPian.png
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

后端代码

PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);WordDocumentWriter doc = new WordDocumentWriter();
DataRegionWriter dataRegion1 = doc.openDataRegion("PO_UserName");//打开数据区域"PO_UserName"
dataRegion1.setValue("张三");//给数据区域赋值DataRegionWriter dataRegion1 = doc.openDataRegion("PO_Photo");//打开数据区域"PO_Photo"
dataRegion1.setValue("[image]D:\\ZhaoPian.png[/image]");//给数据区域插入图片DataRegionWriter dataReg = worddoc.openDataRegion("PO_p1");//“[word][/word]”标签的参数地址可以是“磁盘路径”,也可以是“文档url下载地址(不支持跨域)”dataReg.setValue("[word]D:\\p1.docx[/word]");poCtrl.setWriter(doc); // 必须。
poCtrl.webOpen("D:\\template1.docx", OpenModeType.docNormalEdit, "张佚名");

参考链接
数据区域填充文本
数据区域插入图片
数据区域插入Word文档

http://www.lryc.cn/news/489038.html

相关文章:

  • Window11+annie 视频下载器安装
  • SAP GR(Group Reporting)配置篇(七)
  • 共建智能软件开发联合实验室,怿星科技助力东风柳汽加速智能化技术创新
  • 优化表单交互:在 el-select 组件中嵌入表格显示选项
  • 每日一题 LCR 079. 子集
  • cocos creator 3.8 Node学习 3
  • 微信小程序底部button,小米手机偶现布局错误的bug
  • 【计组】复习题
  • Apache Maven 标准文件目录布局
  • Android 功耗分析(底层篇)
  • 【Xbim+C#】创建圆盘扫掠IfcSweptDiskSolid
  • IntelliJ+SpringBoot项目实战(四)--快速上手数据库开发
  • 利用oss进行数据库和网站图片备份
  • Excel - VLOOKUP函数将指定列替换为字典值
  • 实验室管理平台:Spring Boot技术构建
  • 操作系统进程和线程——针对实习面试
  • 使用 cnpm 安装 Electron,才是正确快速的方法
  • 【人工智能】PyTorch、TensorFlow 和 Keras 全面解析与对比:深度学习框架的终极指南
  • 【第八课】Rust中的函数与方法
  • c语言学习25二维数组
  • 如何理解Lua 使用虚拟堆栈
  • 【倍数问题——同余系】
  • 「San」监听DOM变化的方法
  • 如何选择服务器
  • 嵌入式驱动面试总结
  • Uniapp 简单配置鸿蒙
  • 线程池的实现与应用
  • 基于Java Springboot单位考勤系统
  • 近源渗透|HID ATTACK从0到1
  • 【linux】插入新硬盘如何配置:格式化、分区、自动挂载(Ubuntu)