Springboot 项目集成 PageOffice V6 最简单代码
本文描述了PageOffice产品在Springboot项目中如何集成调用。(本示例使用了Thymeleaf模板引擎)
新建Springboot项目:pageoffice6-springboot2-simple
在您项目的pom.xml中通过下面的代码引入PageOffice依赖。pageoffice.jar已发布到Maven中央仓库 (opens new window),建议使用最新版本。
如果使用Tomcat10及以上版本,使用下面的pom.xml配置
<dependency>
<groupId>com.zhuozhengsoft</groupId>
<artifactId>pageoffice</artifactId>
<version>6.0.0.11</version>
</dependency>
如果使用Tomcat9及以下的版本,使用下面的pom.xml配置
<dependency>
<groupId>com.zhuozhengsoft</groupId>
<artifactId>pageoffice</artifactId>
<version>6.0.0.11-javax</version>
</dependency>
新建一个pageoffice文件夹,用来存放PageOffice的系统文件(如license.lic、客户端安装包等),比如windows环境下创建:D:/pageoffice,linux环境下创建:/root/pageoffice
拷贝pageoffice客户端安装程序到上一步创建的pageoffice文件夹下。
- 客户端是windows环境:拷贝posetup_6.0.0.11.exe到pageoffice文件夹下;
- 客户端是国产操作系统环境:拷贝对应芯片的PageOffice客户端deb安装包到pageoffice文件夹下;
PageOffice客户端安装程序下载地址:https://gitee.com/pageoffice/pageoffice6-client/releases
- 打开springboot-back项目的配置文件application.properties,添加一个posyspath变量,值为上一步创建的pageoffice文件夹的路径
posyspath=D:/pageoffice
- 在您项目的启动类Application类中添加一项@Bean配置,此为PageOffice服务器端的必要配置,代码如下:
@Value("${posyspath}")
private String poSysPath;
@Bean
public ServletRegistrationBean pageofficeRegistrationBean() {
com.zhuozhengsoft.pageoffice.poserver.Server poserver
= new com.zhuozhengsoft.pageoffice.poserver.Server();
poserver.setSysPath(poSysPath);//设置PageOffice注册成功后,license.lic文件存放的目录
ServletRegistrationBean srb = new ServletRegistrationBean(poserver);
srb.addUrlMappings("/poserver.zz");
srb.addUrlMappings("/poclient");
srb.addUrlMappings("/pageoffice.js");
srb.addUrlMappings("/sealsetup.exe");
return srb;
}
- 在D盘根目录下准备一个有内容的test.docx文件,新建Controller并调用PageOffice在线打开此文件,例如SimpleWordController代码如下:
@RestController
@RequestMapping(value = "/simpleWord")
public class SimpleWordController {
@RequestMapping(value="/openFile")
public String openFile(HttpServletRequest request) {
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
poCtrl.setSaveFilePage("saveFile");
//webOpen的第一个参数支持能够输出下载文件的Url相对地址或者文件在服务器上的磁盘路径两种方式
//查看详细,请在本站搜索“PageOffice属性或方法中涉及到的URL路径或磁盘路径的说明”
poCtrl.webOpen("D:\\test.docx", OpenModeType.docNormalEdit, "张三");
request.setAttribute("poHtmlCode", poCtrl.getHtmlCode());
return "simpleWord";
}
@RequestMapping("/saveFile")
public void saveFile(HttpServletRequest request, HttpServletResponse response) {
FileSaver fs = new FileSaver(request, response);
fs.saveToFile("D:\\" + fs.getFileName());
fs.close();
}
}
- 为上一步代码中的openFile方法准备Thymeleaf模板:simpleWord.html,代码如下:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>最简单的打开保存文件</title>
</head>
<body>
<div style="width:100%; height:800px;" th:utext="${poHtmlCode}"></div>
<script>
function Save() {
pageofficectrl.WebSave();
}
function OnPageOfficeCtrlInit() {
pageofficectrl.AddCustomToolButton("保存", "Save", 1);
}
</script>
</body>
</html>
- 在需要点击超链接实现在线打开文件的页面(比如:index.html)中添加pageoffice.js文件的引用。
<script type="text/javascript" src="/pageoffice.js"></script>
- 然后在页面中添加一个超链接,点击超链接调用POBrowser对象的openWindow方法,弹出新浏览器窗口访问simpleWord/openFile在线打开文件,代码如下:
<a href="javascript:POBrowser.openWindow('simpleWord/openFile','width=1150px;height=900px;');">
在线打开文档
</a>
- 启动项目,点击“在线打开文档”超链接,查看在线打开编辑保存Office文件的效果。
参考链接:PageOffice最简集成代码(Springboot)
Springboot 项目集成 PageOffice V6 最简单代码的更多相关文章
- SpringBoot项目集成PageHelper使用
SpringBoot项目集成PageHelper使用 一.开始 地址:https://github.com/pagehelper/Mybatis-PageHelper 在spring boot ...
- Springboot 项目启动后执行某些自定义代码
Springboot 项目启动后执行某些自定义代码 Springboot给我们提供了两种"开机启动"某些方法的方式:ApplicationRunner和CommandLineRun ...
- SpringBoot项目集成Hystrix
Hystrix Hystrix是由Netflix开源的一个服务隔离组件,通过服务隔离来避免由于依赖延迟.异常,引起资源耗尽导致系统不可用的解决方案. 1.什么是服务熔断 服务熔断就是对该服务的调用 ...
- 七、SpringBoot项目集成JSP以及项目不同启动方式及访问路径配置
1.创建JSP目录 在src/main目录下创建目录webapp/WEB-INF/jsp用于存放jsp页面,如下图: 然后再改文件夹下面我们创建JSP文件: 大家在使用IDEA 的new菜单创建JSP ...
- springboot项目集成activity
1.按照上一篇博客,新建好springboot项目后,在项目pom.xml文件中添加activity依赖 <dependency> <groupId>org.activiti& ...
- Springboot项目集成JPush极光推送(Java SDK)
1.由于项目的需求,需要在Android APP上实现消息推送功能,所以引用了极光推送(官网:https://www.jiguang.cn/, 文档:http://docs.jiguang.cn/) ...
- 使用IDEA快速搭建基于Maven的SpringBoot项目(集成使用Redis)
迫于好久没写博客心慌慌,随便写个简单版的笔记便于查阅. 新建项目 新建项目 然后起名 继续next netx finish. 首先附上demo的项目结构图 配置pom.xml <?xml ver ...
- ElasticSearch(九):springboot项目集成消息中间件activeMQ
目的:为了将elasticsearch做成单独的服务,那么我们必须解耦,也就是业务逻辑和搜索模块是没有关系的,并且是异步的.那么项目之间通信,使用的选择有限,消息中间件是一个不错的选择. 消息中间件常 ...
- SpringBoot项目集成Redis
一.在pom文件中添加依赖 <!-- 集成redis --> <dependency> <groupId>org.springframework.boot</ ...
- SpringBoot项目集成socketIo实现实时推送
netty-socketio maven依赖 <dependency> <groupId>com.corundumstudio.socketio</groupId> ...
随机推荐
- #dp#洛谷 2679 子串
题目 有两个仅包含小写英文字母的字符串 \(A\) 和 \(B\). 现在要从字符串 \(A\) 中取出 \(k\) 个互不重叠的非空子串,然后把这 \(k\) 个子串按照其在字符串 \(A\) 中出 ...
- Java中的类型推断和lambda表达式
目录 简介 类型的显示使用 Stream中的类型推断 类型推断中变量名字的重要性 类型推断对性能的影响 类型推断的限制 总结 简介 java是强类型的编程语言,每个java中使用到的变量都需要定义它的 ...
- OpenHarmony源码解析之电话子系统——通话流程
(以下内容来自开发者分享,不代表 OpenHarmony 项目群工作委员会观点) 王大鹏 深圳开鸿数字产业发展有限公司 一.简介 OpenAtom OpenHarmony(以下简称"Open ...
- 面试官:Redis如何实现延迟任务?
延迟任务(Delayed Task)是指在未来的某个时间点,执行相应的任务.也就是说,延迟任务是一种计划任务,它被安排在特定的时间后执行,而不是立即执行. 延迟任务的常见使用场景有以下几个: 定时发送 ...
- mybatis复习(一)
原始连接数据库步骤: 1.导入JDBC驱动包 Class.forName("com.mysql.jdbc.Driver"); 2.获取连接对象(连接目标数据库) Connectio ...
- JDBC驱动连接MogDB/opengauss
JDBC 驱动连接 MogDB/opengauss 一.环境说明 [root@node1 ~]# cat /etc/redhat-release CentOS Linux release 7.6.18 ...
- .NET周刊【4月第1期 2024-04-07】
国内文章 一个程序员的编年史 https://www.cnblogs.com/lunacy/p/18117213 作者拥有15年软件开发经验,曾在多家公司工作,项目和团队起伏充满变数.2007年,在太 ...
- HarmonyOS自动化测试框架—Hypium
原文:https://mp.weixin.qq.com/s/nb5txfDcmGn_VZJXRPEYUQ,点击链接查看更多技术内容. 应用开发过程中,要确保应用的功能和界面能满足预期,往往需要通过测试 ...
- 老者Java,奋战一线
1 语言优劣论 世上只有两种编程语言:一种被人骂,一种没人用. Java已经诞生20多年了,依然是企业级开发中使用最广泛的语言,也是挨骂最多的语言.技术圈经常有"A语言比B语言更好" ...
- 【转】CentOS安装VMware Tools
[转]CentOS安装VMware Tools VMware 是非常好的虚拟机软件.如果系统安装了VMware Tools以后对虚拟机的性能会提升很多的.下面是如果在CentOS系统内安装VMware ...