随笔 - 26  文章 - 5  评论 - 4  阅读 - 23119

国产麒麟操作系统调用PageOffice在线编辑保存WPS文档

国产麒麟操作系统调用PageOffice在线编辑保存WPS文档

​ 自国家大力推广国产软件以来,麒麟软件的麒麟操作系统在软硬件适配方面不断拓展,整个生态日渐完善,已经基本满足政府、企业等日常办公需求。在Windows系统环境下,PageOffice产品积累了十多年的Office在线编辑研发经验和应用经验,现在针对麒麟系统在线办公发布了支持国产操作系统的中间件产品PageOffice国产版,能很好的支持龙芯,兆芯,飞腾,鲲鹏,X86,ARM等不同CPU芯片架构的麒麟操作系统。

​ PageOffice产品调用金山API接口,启动本地的WPS办公应用程序在线打开文档,支持在麒麟系统中调用360、奇安信、火狐等浏览器,在线打开doc文档、电子表格、演示文稿等Office文件,进而实现嵌入式的文档编辑和控制。

​ 对于开发人员来说,不需要额外的学习成本,就可以轻松掌握。此前集成了Windows版PageOffice的应用系统也几乎无需修改代码,平滑完成国产化版本的改版迁移。

PageOffice国产版开发包结构

  • Client:此目录下是PageOffice的客户端安装程序
  • Samplesgc5:此文件夹是PageOffice的Demo程序
  • Server:此目录下是集成PageOffice产品所需的jar包和配置文件

集成开发步骤(SSM)

  1. 将“Server” 文件夹中pageoffice的jar拷贝到您自己Web项目中WEB-INF/lib目录下;

  2. 参考“Server” 文件夹中的web.xml 文件, 配置自己Web 项目中的web.xml, 也可以直接把下面的这段配置添加到自己的web.xml 中;

    	<!-- PageOffice Begin -->
    	<servlet>
    		<servlet-name>poserver</servlet-name>
    		<servlet-class>com.zhuozhengsoft.pageoffice.poserver.Server</servlet-class>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>poserver</servlet-name>
    		<url-pattern>/poserver.zz</url-pattern>
    	</servlet-mapping>
    	<servlet-mapping>
    		<servlet-name>poserver</servlet-name>
    		<url-pattern>/posetup.exe</url-pattern>
    	</servlet-mapping>
    	<servlet-mapping>
    		<servlet-name>poserver</servlet-name>
    		<url-pattern>/pageoffice.js</url-pattern>
    	</servlet-mapping>
    	<!-- PageOffice End -->
    
  3. 在后台Controller中编写代码调用PageOffice

    @RequestMapping(value="/openWord")
    public ModelAndView openWord(HttpServletRequest request){
        PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
        poCtrl1.setServerPage("poserver.zz"); //此行必须
        poCtrl1.setSaveFilePage("xxxController/savefile");//设置处理文件保存的Controller方法
        poCtrl1.webOpen("doc/test.doc", OpenModeType.docNormalEdit, "张三");//打开文件
        request.setAttribute("poCtrl1", poCtrl1.getHtmlCode("PageOfficeCtrl1"));
        
        ModelAndView mv = new ModelAndView("Word");
    	return mv;
    }
    
    1. 在视图html代码中获取第3步request对象中的poCtrl1,显示文档编辑区域
    	<div style="height:700px;width:auto;">
            ${pdfCtrl1}
        </div>
    

集成开发步骤(SpringBoot)

  1. 如果在自己项目的根目录下创建lib文件夹,将“Server” 文件夹中pageoffice的jar拷贝到此lib目录下,那么pom.xml添加下面代码(注意修改为自己使用的pageoffice的jar包版本号):

    <dependency>
        <groupId>com.zhuozhengsoft</groupId>  <!--自定义-->
        <artifactId>pageoffice</artifactId>    <!--自定义-->
        <version>5.2.0.1</version> <!--自定义-->
        <scope>system</scope>
        <!--system,类似provided,需要显式提供依赖的jar以后,Maven就不会在Repository中查找它-->
        <!--${project.basedir}为springboot内置属性-->
        <systemPath>${project.basedir}/lib/pageoffice5.2.0.1.jar</systemPath>
    </dependency>
    

    如果使用mvn命令安装pageoffice的jar包到本地仓库,那么pom.xml添加下面的代码即可:

    <dependency>
        <groupId>com.zhuozhengsoft</groupId>  <!--自定义-->
        <artifactId>pageoffice</artifactId>    <!--自定义-->
        <version>5.2.0.1</version> <!--自定义-->
    </dependency>
    

    mvn命令安装pageoffice的jar包到本地仓库方法,参考下面地址:

    https://www.kancloud.cn/pageoffice_course_group/pageoffice_course/653878

  2. 添加下面的PageOffice的服务器端授权程序的@Bean:

    注意:poserver.setSysPath设置为一个存在的目录路径

	/**
	 * 添加PageOffice的服务器端授权程序Servlet(必须)
	 * @return
	 */
	@Bean
    public ServletRegistrationBean servletRegistrationBean() {
		com.zhuozhengsoft.pageoffice.poserver.Server poserver = new com.zhuozhengsoft.pageoffice.poserver.Server();
		poserver.setSysPath("d:/lic/");//设置PageOffice注册成功后,license.lic文件存放的目录
		ServletRegistrationBean srb = new ServletRegistrationBean(poserver);
		srb.addUrlMappings("/poserver.zz");
		srb.addUrlMappings("/posetup.exe");
		srb.addUrlMappings("/pageoffice.js");
        return srb;
    }
  1. 在后台Controller中编写代码调用PageOffice
@RequestMapping(value="/openWord")
public ModelAndView openWord(HttpServletRequest request){
    PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
    poCtrl1.setServerPage("poserver.zz"); //此行必须
    poCtrl1.setSaveFilePage("xxxController/savefile");//设置处理文件保存的Controller方法
    poCtrl1.webOpen("doc/test.doc", OpenModeType.docNormalEdit, "张三");//打开文件
    request.setAttribute("poCtrl1", poCtrl1.getHtmlCode("PageOfficeCtrl1"));
    
    ModelAndView mv = new ModelAndView("Word");
	return mv;
}
  1. 在视图html代码中获取第3步request对象中的poCtrl1,显示文档编辑区域
	<div style="height:700px;width:auto;">
        ${pdfCtrl1}
    </div>
posted on   Tony636  阅读(709)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示