PageOffice国产版在线编辑word文件

PageOffice国产版支持统信UOS、银河麒麟等国产操作系统。调用客户端WPS在线编辑word、excel、ppt等文件。在线编辑效果与本地WPS一致。如图所示:

web系统集成pageofficeV6.0国产版的文档:PageOfficeV6.0国产版最简集成代码(Springboot)

PageOffice最简集成代码(Springboot)

本文描述了PageOffice产品在Springboot项目中如何集成调用。(本示例使用了Thymeleaf模板引擎)

1、新建Springboot项目:pageoffice6-springboot2-simple

2、在您项目的pom.xml中通过下面的代码引入PageOffice依赖。pageoffice.jar已发布到Maven中央仓库 (opens new window),建议使用最新版本。

如果使用Tomcat10及以上版本,使用下面的pom.xml配置

<dependency><groupId>com.zhuozhengsoft</groupId>   <artifactId>pageoffice</artifactId>   <version>6.1.0.2</version>
</dependency>

如果使用Tomcat9及以下的版本,使用下面的pom.xml配置

<dependency><groupId>com.zhuozhengsoft</groupId>   <artifactId>pageoffice</artifactId>   <version>6.1.0.2-javax</version>
</dependency>

3、新建一个pageoffice文件夹,用来存放PageOffice的系统文件(如license.lic、客户端安装包等),比如windows环境下创建:D:/pageoffice,linux环境下创建:/root/pageoffice

4、拷贝pageoffice客户端安装程序到上一步创建的pageoffice文件夹下。

  • 客户端是windows环境:拷贝posetup_6.1.0.2.exe到pageoffice文件夹下;
  • 客户端是国产操作系统环境:拷贝对应芯片的PageOffice客户端deb安装包到pageoffice文件夹下;

PageOffice客户端安装程序下载地址:https://gitee.com/pageoffice/pageoffice6-client/releases (opens new window) 

5、打开springboot-back项目的配置文件application.properties,添加一个posyspath变量,值为上一步创建的pageoffice文件夹的路径。

posyspath=D:/pageoffice

6、在您项目的启动类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;
}

7、在D盘根目录下准备一个有内容的test.docx文件,新建Controller并调用PageOffice在线打开此文件,例如SimpleWordController代码如下:

@Controller
@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();}
}

8、为上一步代码中的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>

 9、在需要点击超链接实现在线打开文件的页面(比如:index.html)中添加pageoffice.js文件的引用。

<script type="text/javascript" src="/pageoffice.js"></script>

10、然后在页面中添加一个超链接,点击超链接调用POBrowser对象的openWindow方法,弹出新浏览器窗口访问simpleWord/openFile在线打开文件,代码如下:

<a href="javascript:POBrowser.openWindow('simpleWord/openFile','width=1150px;height=900px;');">在线打开文档
</a>

11、启动项目,点击“在线打开文档”超链接,查看在线打开编辑保存Office文件的效果。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/356449.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

当flex-direction: column时,设置flex:1不生效解决办法

当需求是: 页面纵向排列,且最后一个元素撑满剩余高度 flex:1在横向排列时是可以的,但是纵向排列会失效,此时需要给最后一个子元素设置align-self: stretch;即可撑满剩余高度 <div class"father"><div class"child child1"></div><div…

短视频批量下载工具源码逻辑解析(软件)

短视频批量提取第三篇关于视频提取下载的思路 一&#xff1a;概述 因为上一篇不完整&#xff0c;这里其实就是补充第二篇关于源码思路。这里不针对视频评论的提取&#xff0c;只对视频分享链接批量导入下载进行思路解析 二&#xff1a;难点 通常情况下如果直接访问详情页进行…

05 - matlab m_map地学绘图工具基础函数 - 设置比例尺指北针

05 - matlab m_map地学绘图工具基础函数 - 设置比例尺指北针 0. 引言1. 关于m_scale2. 关于m_ruler3. 关于m_northarrow4. 结语 0. 引言 本篇介绍下m_map中添加指北针(m_northarrow)、比例尺(m_ruler)和进行比例缩放(m_scale)的函数及其用法 。 1. 关于m_scale m_scale用于图件…

获取时间戳是使用System.currentTimeMillis()还是使用new Date().getTime()(阿里开发规范)?

1.阿里规范 在阿里的Java开发手册中强制要求使用System.currentTimeMillis() 2.为什么(源码详解) new Date().getTime()它实际上也是调用的System.currentTimeMillis()&#xff0c;源码分析。 这个fastTime是它的成员变量&#xff0c;在new Date()的时候就被赋值了。 扩展一…

前端路线指导(4):前端春招秋招经验分享

春招/秋招经验分享(前端) 哈喽大家好&#xff0c;我是小粉&#xff0c;双一流本科&#xff0c;自学前端一年&#xff0c;收获腾讯&#xff0c;字节等多家大厂offer&#xff0c;一半以上ssp~ 今天给大家分享一下我的春招&#xff08;暑期实习&#xff09;、秋招经历&#xff0c;…

MicroBlaze IP核中Local Memory Bus (LMB)接口描述

LMB&#xff08;Local Memory Bus&#xff09;是一种同步总线&#xff0c;主要用于访问FPGA上的块RAM&#xff08;Block RAM&#xff0c;BRAM&#xff09;。LMB使用最少的控制信号和一个简单的协议&#xff0c;以保证块RAM能在一个时钟周期内被存取。所有的LMB信号都是高电平有…

每日一题——冒泡排序

C语言——冒泡排序 冒泡排序练习 前言&#xff1a;CSDN的小伙伴们&#xff0c;大家好&#xff01;今天我来给大家分享一种解题思想——冒泡排序。 冒泡排序 冒泡法的核心思想&#xff1a;两两相邻的元素进行比较 2.冒泡排序的算法描述如下。 (1)比较相邻的元素。如果第一 个比…

Redis-事务-watch-unwatch

文章目录 1、监视key2、提交事务 1、监视key 打开两个窗口&#xff0c;第一个窗口先监视key&#xff0c;然后开始事务&#xff0c;然后再打开第二个窗口&#xff0c;修改balance为0 2、提交事务 此时事务被打断

做好海外ASO优化的7大核心要素你了解几个?

海外App进行ASO优化时&#xff0c;需要综合考虑多个方面以确保应用在应用商店中获得更高的曝光率和下载量。以下是一些关键的ASO优化步骤&#xff0c;结合参考文章中的相关信息进行详细阐述&#xff1a; 1.关键词优化 调研目标市场的用户行为和检索习惯&#xff0c;挖掘与应用…

【机器学习300问】129、RNN如何在情感分析任务中起作用的?

情感分析是自然语言处理&#xff08;NLP&#xff09;领域的一个重要分支&#xff0c;它的目标是自动检测和提取出非结构化文本数据中的主观信息&#xff08;比如&#xff1a;情绪、意见、评价等&#xff09; 一、情感分析任务案例 分析电商产品评论的情感倾向&#xff08;三分类…

python项目(课设)——飞机大战小游戏项目源码(pygame)

主程序 import pygame from plane_sprites import * class PlaneGame: """ 游戏类 """ def __init__(self): print("游戏初始化") # 初始化字体模块 pygame.font.init() # 创建游戏…

python-题库篇-Python语言特性

文章目录 Python语言特性1 Python的函数参数传递2 Python中的元类(metaclass)3 staticmethod和classmethod4 类变量和实例变量5 Python自省6 字典推导式7 Python中单下划线和双下划线8 字符串格式化:%和.format9 迭代器和生成器10 *args and **kwargs11 面向切面编程AOP和装饰器…

PWR电源控制

一、PWR简介 1、PWR&#xff08;Power Control&#xff09;电源控制 &#xff08;1&#xff09;PWR负责管理STM32内部的电源供电部分&#xff0c;可以实现可编程电压监测器和低功耗模式的功能 &#xff08;2&#xff09;可编程电压监测器&#xff08;PVD&#xff09;可以监控…

五十五、openlayers官网示例Loading Spinner解析——给地图添加loading效果,瓦片图层加载时等待效果

官网demo地址&#xff1a; Loading Spinner 这篇介绍了一个非常简单的loading效果 利用地图的loadstart和loadend事件&#xff0c;动态的添加和删除class名。 map.on("loadstart", function () {map.getTargetElement().classList.add("spinner");});map…

【数据结构】第十九弹---C语言实现冒泡排序算法

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1、冒泡排序基本思想 2、代码的初步实现 3、代码的优化 4、代码的测试 5、时空复杂度分析 6、模拟实现qsort 6.1、冒泡排序函数 6.2、交换数…

2024信息系统、信号处理与通信技术国际会议(ICISPCT2024)

2024信息系统、信号处理与通信技术国际会议&#xff08;ICISPCT2024) 会议简介 2024国际信息系统、信号处理与通信技术大会&#xff08;ICISPCT2024&#xff09;将在青岛隆重开幕。本次会议旨在汇聚全球信息系统、信号处理和通信技术领域的专家学者&#xff0c;共同探索行业…

Docker之overlay2的迁移

原因 docker默认将文件及其容器放置在了系统盘的挂载区内&#xff0c;如果长期使用会发现系统挂载区被overlay2挤爆了,因此在一开始我们将其迁移在大容量外挂磁盘上,就可以避免系统盘被挤爆,放心使用. 具体操作 # 停止容器 systemctl stop docker# 修改容器配置&#xff0c…

基于STM32的智能病房监控和人脸识别系统设计(毕业设计)

摘 要 随着技术的不断进步和医疗需求的不断增长&#xff0c;智能病房控制系统有望在医疗领域发挥更大的作用。基于此&#xff0c;本文研究设计了一款低成本、操作简单、适用性强的基于STM32的智能病房监控和人脸识别系统。该系统通过STM32作为控制器和OpenMV对人脸分辨进行门…

常见调试器介绍

目录 常见调试器 1.1 ST-Link 1.2 DAPLink 1.3 JLink 常见调试器 市面上有很多的调试器&#xff0c;下面是大家比较常见的一些调试器&#xff0c; 比如&#xff1a;ST-Link、DAPLink、JLink、Ulink等 1.1 ST-Link ST-Link是一种用于STM8及STM32系列单片机的调试器和下载…

windows使用curl命令出现乱码的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…