[转载]Java集成PageOffice在线打开编辑word文件 - Spring Boot

开发环境:JDK1.8、Eclipse、Sping Boot + Thymeleaf框架。

一. 构建Sping Boot + Thymeleaf框架的项目(不再详述):

  1. 新建一个maven project项目:demo。

  2. 修改pom.xml配置,把项目配置为Spring Boot项目;

  3. 配置Thymeleaf:添加Thymeleaf依赖,并在application.properties文件中添加Thymeleaf的配置;

  4. 新建DemoController,添加showWord、showIndex方法:

@RequestMapping(value="/word", method=RequestMethod.GET)
public ModelAndView showWord(HttpServletRequest request, Map<String,Object> map){
    ModelAndView mv = new ModelAndView("Word");
    return mv;
}
@RequestMapping(value="/index", method=RequestMethod.GET)
public ModelAndView showIndex(){
    ModelAndView mv = new ModelAndView("Index");
    return mv;
}

  5.  新建Thymeleaf模板页:Word.html、Index.html;

  6. 运行demo项目,并成功访问:http://localhost:8080/index

二、 集成PageOffice

  1.  在pom.xml中添加PageOffice的依赖:

<!-- 添加Sqlite依赖(可选:如果不需要使用印章功能的话,不需要添加此依赖)-->
<dependency>
    <groupId>org.xerial</groupId>
    <artifactId>sqlite-jdbc</artifactId>
    <version>3.7.2</version>
</dependency>
<!-- 添加PageOffice依赖(必须) -->
<dependency>
    <groupId>com.zhuozhengsoft</groupId>
    <artifactId>pageoffice</artifactId>
    <version>4.3.0.2</version>
</dependency>

  2.  在application.properties文件中添加两个自定义参数配置,posyspath:指定一个磁盘目录用来存放PageOffice注册成功之后生成的license.lic文件;popassword:设置PageOffice自带印章管理程序的登录密码;以备给PageOffice的服务器端Servlet程序使用:

########################################################
###PageOffice
########################################################
posyspath=d:/lic/
popassword=111111

  3.  在DemoController中添加代码获取上一步在application.properties中定义的两个参数:

@Value("${posyspath}")
private String poSysPath;
@Value("${popassword}")
private String poPassWord;

  4. 在DemoController中添加PageOffice的Servlet的注册代码:

     /**
     * 添加PageOffice的服务器端授权程序Servlet(必须)
     * @return
     */
    @Bean
    public ServletRegistrationBean servletRegistrationBean() {
        com.zhuozhengsoft.pageoffice.poserver.Server poserver = new com.zhuozhengsoft.pageoffice.poserver.Server();
        //设置PageOffice注册成功后,license.lic文件存放的目录
        poserver.setSysPath(poSysPath);
        ServletRegistrationBean srb = new ServletRegistrationBean(poserver);
        srb.addUrlMappings("/poserver.zz");
        srb.addUrlMappings("/posetup.exe");
        srb.addUrlMappings("/pageoffice.js");
        srb.addUrlMappings("/jquery.min.js");
        srb.addUrlMappings("/pobstyle.css");
        srb.addUrlMappings("/sealsetup.exe");
        return srb;
        //
    }

  5. 在DemoController的showWord方法中添加创建PageOfficeCtrl对象的代码,其中WebOpen方法的第一个参数是office文件在服务器端的磁盘路径,在此demo中暂时使用常量:d:\\test.doc

  

    @RequestMapping(value="/word", method=RequestMethod.GET)
    public ModelAndView showWord(HttpServletRequest request, Map<String,Object> map){
        //--- PageOffice的调用代码 开始 -----
        PageOfficeCtrl poCtrl=new PageOfficeCtrl(request);
        poCtrl.setServerPage("/poserver.zz");//设置授权程序servlet
        poCtrl.addCustomToolButton("保存","Save",1); //添加自定义按钮
        poCtrl.setSaveFilePage("/save");//设置保存的action
        poCtrl.webOpen("d:\\test.doc",OpenModeType.docAdmin,"张三");
        map.put("pageoffice",poCtrl.getHtmlCode("PageOfficeCtrl1"));
        //--- PageOffice的调用代码 结束 -----
        ModelAndView mv = new ModelAndView("Word");
        return mv;
    }

  6. 在Word.html中添加PageOffice客户端控件所在的div和js代码:

<div style="width:1000px;height:700px;" th:utext="${pageoffice}"> </div>
<script type="text/javascript">
    function Save() {
        document.getElementById("PageOfficeCtrl1").WebSave();
    }
</script>

  7. 在Word.html中添加pageoffice.js和jquery.min.js的引用,并添打开文件的超链接:

<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="pageoffice.js" id="po_js_main"></script>
<a href="javascript:POBrowser.openWindowModeless(‘/word‘,‘width=1200px;height=800px;‘);">打开文件</a>

  8. 在DemoController添加saveFile方法,用来接收PageOffice客户端上传的文件流并保存到服务器指定磁盘目录,在此demo中暂时使用常量:d:\\

    @RequestMapping("/save")
    public void saveFile(HttpServletRequest request, HttpServletResponse response){
        FileSaver fs = new FileSaver(request, response);
        fs.saveToFile("d:\\" + fs.getFileName());
        fs.close();
    }

  9.  在d盘根目录下准备一个test.doc文件(不要用0字节的文件)以备测试;

  10. 运行demo项目,访问:http://localhost:8080/index点击“打开文件”的超链接即可在线打开、编辑和保存文件。

三、源码下载

  下载地址:http://www.zhuozhengsoft.com/download/PageOffice4.3.0.2ForSpringBoot.zip

原文地址:https://www.cnblogs.com/qq742655/p/9025784.html

时间: 2024-08-25 08:50:50

[转载]Java集成PageOffice在线打开编辑word文件 - Spring Boot的相关文章

[原创]Java调用PageOffice在线打开数据库中保存的Word文件

PageOffice产品和数据库是两个独立的概念,严格来说两者之间没有任何本质关系.PageOffice不依赖数据库而存在,但是数据库和PageOffice可以结合使用来完成某些复杂的业务逻辑.例如:PageOffice可以打开数据库中的二进制流文件,也可以将Word或者Excel整个文档或者文档中的一部分数据保存到数据库中,这里的数据库可以是任意数据库,如:Sqlite,Access,SQL Server,Oracle,MySQL,DB2,Sybase等.下面我们就此问题展开详细论述. 1)打

[转载]Java开发在线打开编辑保存Word文件

Java调用logo是"P"图标的第三方插件,实现在线编辑保存Word文件(以jsp调用为例,支持SSM.SSH.SpringMVC等流行框架) 工具/原料 Eclipse或MyEclipse等java IDE环境 logo是"P"图标的第三方插件 方法/步骤 下载logo是"P"图标的第三方插件开发包:百度一下PageOffice,从官网下载   以Myeclipse为例,新建一个Web Project,比如:wordonline   解压开发

12.JAVA之GUI编程打开与保存文件

功能:java图形用户界面开发,练习打开保存文件 代码如下: import java.awt.FileDialog; import java.awt.Frame; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.TextArea; import java.awt.event.ActionEvent; import java.awt.event.ActionListen

在线打开浏览PDF文件的各种插件

实现在线浏览PDF文件的实用jQuery插件 阅读目录 PDFObject pdf.js jsPDF jQuery Media Plugin Google Docs PDF viewer ZOHO Viewer Anychart:使用JavaScript导出PDF jQuery Document Viewer 在web开发当中我们经常需要进行需要在线浏览PDf内容,在线嵌入动态pdf,传统的解决方法安装客户端PDF阅读器,如果是在谷歌是可以在线浏览的,因为他自身就带了一些插件,以前遇到这样的问题

怎样取消不能改动(仅仅读打开)的word文件的password

作者:iamlaosong 朋友给我一个文档,是加了防改动password的,希望我能帮其取消.由于须要原文档的格式,取消方法例如以下(office2007环境): 1.打开文件.文件打开时,提演示样例如以下,选择"仅仅读"打开就可以: 2.选择另存为新文件.在弹出对话框中点击"工具"button.例如以下图中所看到的: 3.在弹出菜单中选择"常规选项".然后取消对话框中的password和勾选项后点击"确定".例如以下图所看

java防止浏览器直接打开下载的文件

这个其实是在web.xml文件中配置mime下载文件类型就可以了,配置的示例: <mime-mapping> <extension>doc</extension> <mime-type>application/msword</mime-type> </mime-mapping> <mime-mapping> <extension>xls</extension> <mime-type>ap

Java微信公众平台开发之素材管理(Spring Boot 2.X)

微信素材管理和群发这块文档对Java很不友好.本文只对新增临时素材,新增永久素材做介绍,其余获取.删除.修改自行补充 公众号经常有需要用到一些临时性的多媒体素材的场景,例如在使用接口特别是发送消息时,对多媒体文件.多媒体消息的获取和调用等操作,是通过media_id来进行的.素材管理接口对所有认证的订阅号和服务号开放. 素材的限制 图片(image): 2M,支持PNG\JPEG\JPG\GIF格式语音(voice):2M,播放长度不超过60s,支持AMR\MP3格式视频(video):10MB

[转载]java获取word里面的文本

需求场景 开发的web办公系统如果需要处理大量的Word文档(比如有成千上万个文档),用户一定提出查找包含某些关键字的文档的需求,这就要求能够读取 word 中的文字内容,而忽略其中的文字样式.表格.图片等信息. 方案分析 方案一:使用Apache POI技术将所有服务器上文档的文本获取后存储到数据库,查找文档时利用sql语句检索数据中存储的文档文本是否包含关键字来搜索到相关文档.然而现在 microsoft word 有两种文档格式doc和docx,这两个版本存储数据的格式上都有相当大的差别.

WORD文件如何在线转换成长图文件

WORD文件如何在线转换成长图文件,WORD文件内容转换成图片形式的话打开阅读会显得非常方便,而且可以将很长的一篇文档转换成长图,也减小了文件体积,那如何进行转换的呢. 点开百度首页,搜索关键词迅捷PDF在线转换器. 点开转换器页面,点击文档转换,选择Word转长图. 点击选择文件加入待转换的Word文件,也可直接拖动Word文件添加. 设置需要转换的页码等参数,点击开始转换,将自动上传转换文件. 转换需要几十秒的时间,耐心等待一下. 转换进度完成后,可选择直接打开也可以选择立即下载至桌面或文件