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

news2024/11/22 5:55:11

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.coloradmin.cn/o/2245133.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

H.265流媒体播放器EasyPlayer.js H5流媒体播放器关于如何查看手机端的日志信息并保存下来

现今流媒体播放器的发展趋势将更加多元化和个性化。人工智能的应用将深入内容创作、用户体验优化等多个方面,带来前所未有的个性化体验。 EasyPlayer.js H.265流媒体播放器属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放&#…

【软考】系统架构设计师-信息系统基础

#信息系统基础核心知识点 信息系统5个基本功能:输入、存储、处理、输出和控制 诺兰模型:信息系统计划的阶段模型,6阶段 初始阶段,传播阶段,控制阶段,集成阶段,数据管理阶段,成熟阶…

【论文笔记】Large Brain Model (LaBraM, ICLR 2024)

Code: https://github.com/935963004/LaBraM Data: 无 目录 AbstractIntroductionMethodNeural tokenizer training:Pre-training LaBraM: ResultsExperimental setup:Pre-training result:Comparison with SOTA:Pre-t…

瀚海微SD NAND之SD 协议(34)1.8V信号的时序

固定数据窗口输出时序(SDR12、SDR25、SDR50) 固定数据窗口插卡输出时序如下图所示,SDR12、SDR25、SDR50的输出时序 有效窗口由输出延迟(topy)的最小值和最大值指定。 无论温度和电压如何变化,与SDCLK同步的有效数据窗口都是可用的。 输出有效窗口由t…

web——sqliabs靶场——第十三关——报错注入+布尔盲注

发现是单引号加括号闭合的 尝试联合注入 发现不太行,那尝试报错注入。 测试报错注入 unameadmin) and updatexml(1,0x7e,3) -- &passwdadmin&submitSubmit 爆数据库 unameadmin) and updatexml(1,concat(0x7e,database(),0x7e),3) -- &passwdadmin&a…

5、AI测试辅助-生成测试用例思维导图

AI测试辅助-生成测试用例思维导图 创建测试用例两种方式1、Plantuml思维导图版本 (不推荐)2、Markdown思维导图版本(推荐) 创建测试用例两种方式 完整的测试用例通常需要包含以下的元素: 1、测试模块 2、测试标题 3、前置条件 4、…

附录2-pytorch yolov5目标检测

项目地址 https://github.com/ultralytics/yolov5 参考 https://zhuanlan.zhihu.com/p/711356735 目录 1 数据集准备 1.1 images 1.2 labels 1.3 yaml文件 2 环境配置 3 python环境配置 3.1 安装torch 3.2 安装opencv 3.3 安装 ultralytics 4 预训练模型…

CDM(码分复用)发送和接受原理

现在假设主机A、B、C。其对应的码片序列为a、b、c。 现在有: 现在假设A发送比特1,对应发送的是。B不发送。C发送比特0,对应发送。 信号叠加的结果为。 基站X将结果与每一个主机的码片序列做内积。 与A: ,因此A发送了1。 与B…

菜鸟驿站二维码/一维码 取件识别功能

特别注意需要引入 库文 ZXing 可跳转: 记录【WinForm】C#学习使用ZXing.Net生成条码过程_c# zxing-CSDN博客 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static System.Net.…

华为云鸿蒙应用入门级开发者认证考试题库(理论题和实验题)

注意:考试链接地址:华为云鸿蒙应用入门级学习认证_华为云鸿蒙应用入门级开发者认证_华为云开发者学堂-华为云 当前认证打折之后是1元,之后原价700元,大家尽快考试!考试题库里面答案不一定全对,但是可以保证…

Spring Boot与MyBatis-Plus的高效集成

Spring Boot与MyBatis-Plus的高效集成 引言 在现代 Java 开发中,MyBatis-Plus 作为 MyBatis 的增强工具,以其简化 CRUD 操作和无需编写 XML 映射文件的特点,受到了开发者的青睐。本篇文章将带你一步步整合 Spring Boot 与 MyBatis-Plus&…

Elasticsearch:如何部署文本嵌入模型并将其用于语义搜索

你可以按照这些说明在 Elasticsearch 中部署文本嵌入模型,测试模型并将其添加到推理提取管道。它使你能够生成文本的向量表示并对生成的向量执行向量相似性搜索。示例中使用的模型在 HuggingFace上公开可用。 该示例使用来自 MS MARCO Passage Ranking Task 的公共…

uniapp 购物弹窗组件 (微信小程序)

效果图&#xff0c;暂时只适应单规格&#xff0c;居中弹出和下方弹出&#xff0c;如需求不满足&#xff0c;请自行修改代码 &#xff08;更新于24/11/15) 居中显示效果 下方弹出效果 html <template><view class"" v-if"show":class"mod…

(Linux)搭建静态网站——基于http/https协议的静态网站

简单了解nginx配置文件 1.下载并开启nginx服务 下载 [rootlocalhost ~]# dnf install nginx -y开启 [rootlocalhost ~]# systemctl restart nginx 1.(1)搭建静态网站——基于http协议的静态网站 实验1&#xff1a;搭建一个web服务器&#xff0c;访问该服务器时显示“hello w…

爬取网易云音乐热歌榜:从入门到实战

爬取网易云音乐热歌榜&#xff1a;从入门到实战 前提声明 爬虫应遵守目标网站的robots.txt协议&#xff0c;尊重版权和用户隐私。本代码仅供学习和研究使用&#xff0c;不得用于商业用途。请确保在合法合规的前提下使用本代码。本代码所爬音乐为公开可选择的音乐 目录 引言…

Quality minus junk论文阅读

Quality minus junk论文阅读 文章目录 Quality minus junk论文阅读 AbstractTheoretical FrameworkEmpirical AnalysisDataQuality scorePortfoliosEx ante quality forecasts fundamentals Results and DiscussionThe price of qualityUnderstanding the price of quality: th…

利用RAGflow和LM Studio建立食品法规问答系统

前言 食品企业在管理标准、法规&#xff0c;特别是食品原料、特殊食品法规时&#xff0c;难以通过速查法规得到准确的结果。随着AI技术的发展&#xff0c;互联网上出现很多AI知识库的解决方案。 经过一轮测试&#xff0c;找到问题抓手、打通业务底层逻辑、对齐行业颗粒度、沉…

类和对象——拷贝构造函数,赋值运算符重载(C++)

1.拷⻉构造函数 如果⼀个构造函数的第⼀个参数是自身类类型的引用&#xff0c;且任何额外的参数都有默认值&#xff0c;则此构造函数也叫做拷贝构造函数&#xff0c;也就是说拷贝构造是⼀个特殊的构造函数。 // 拷贝构造函数//d2(d1) Date(const Date& d) {_year d._yea…

浅谈软件开发中的yield关键字:从餐厅服务理解异步编程之美

在现代软件开发中&#xff0c;处理大量数据流时经常会遇到性能和内存消耗的问题。传统的编程方式往往是一次性获取所有数据&#xff0c;这就像餐厅厨师要把所有菜品做完才上菜一样&#xff0c;既不高效也不够灵活。而yield关键字的出现&#xff0c;为我们提供了一种优雅的解决方…

散户持股增厚工具:智能T0算法交易

最近市场很多都说牛市&#xff0c;但是大多数朋友怎么来的又怎么吐出去了。这会儿我们用T0的智能算法交易又可以增厚我们的持仓收益。简单来说&#xff0c;就是基于用户原有的股票持仓&#xff0c;针对同一标的&#xff0c;配合智能T0算法&#xff0c;每天全自动操作&#xff0…