springboot+pageoffice实现Word在线编辑

1、下载jar包

http://www.smzy.com/smzy/down362581.html

2.将jar包打入maven仓库

springboot+pageoffice实现Word在线编辑_第1张图片

mvn install:install-file -Dfile=D:\pageoffice4.5.0.3.jar -DgroupId=my.pageoffice -DartifactId=pageoffice -Dversion=1.0 -Dpackaging=jar

3、添加依赖


	my.pageoffice
	pageoffice
	1.0


	org.xerial
	sqlite-jdbc
	3.7.2

4、获得licence.lic

springboot+pageoffice实现Word在线编辑_第2张图片

将Samples4放入tomcat,访问:http://localhost:8080/Samples4 ,可以看到如下:

springboot+pageoffice实现Word在线编辑_第3张图片

再往下拉,看到 

springboot+pageoffice实现Word在线编辑_第4张图片

随便点一个,会让注册,随便填,但注册码需要注意,要搜与jar版本匹配的或更高版本的,如果jar是4.0,注册码是2.0的最后打开pageoffice时就会提示你 

当前PAGEOFFICE需要获取更高版本的授权才能正常运行。(ERROR:0X0005)

我使用的(试用版的序列号)

PageOffice V4.0 标准版试用序列号:IMTG6-BSXJ-JGZ6-3BIWM
PageOffice V4.0 专业版试用序列号:CA1XB-MF7Y-12ST-PSBP2

注册完成后,可以在D:\apache-tomcat-8.5.43\webapps\Samples4\WEB-INF\lib看到licence.lic文件

springboot+pageoffice实现Word在线编辑_第5张图片

把这个licence.lic移动到一个位置,与6、中的 posyspath 一致

5、整合 thymeleaf


	org.springframework.boot
	spring-boot-starter-thymeleaf

6、 配置Bean

import com.zhuozhengsoft.pageoffice.poserver.Server;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Description :初始化Bean
 * ---------------------------------
 * @Author : SG.Y
 * @Date : 2019/5/9 15:40
 */
@Configuration
@ConfigurationProperties
public class BeanInitConf {

    // PageOffice配置
    private String posyspath ="d:/lic/";

    /***
     * PageOffice 注册
     * @return
     */
    @Bean
    public ServletRegistrationBean servletRegistrationBean() {
        Server poserver = new Server();
        //设置PageOffice注册成功后,license.lic文件存放的目录
        poserver.setSysPath(posyspath);
        ServletRegistrationBean srb = new ServletRegistrationBean(poserver);
        // 下面是把资源文件暴露出来,必须配置,否则页面访问不了
        srb.addUrlMappings("/poserver.zz", "/posetup.exe", "/pageoffice.js", "/jquery.min.js", "/pobstyle.css", "/sealsetup.exe");
        return srb;
    }

    public void setPosyspath(String posyspath) {
        this.posyspath = posyspath;
    }

}

7、测试代码

注意里面的文档、licence.lic等路径

package com.dxl.system.controller.wordonline;

import com.zhuozhengsoft.pageoffice.FileSaver;
import com.zhuozhengsoft.pageoffice.OpenModeType;
import com.zhuozhengsoft.pageoffice.PageOfficeCtrl;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;

/**
 * @Description :Office在线编辑、预览API
 * ---------------------------------
 * @Author : SG.Y
 * @Date : 2019/5/14 16:36
 */
@Controller
//@Api(value = "word",tags = {"word--接口"})
public class OfficeOnlineApi {

@GetMapping("/w")
public String showWord2(){
    return "ww";
}
    /**
     * 在线word文档编辑
     *
     * @param request
     * @param map
     * @return
     */
    @GetMapping("/word")
    public String showWord(HttpServletRequest request, Map map) {
        PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
        //设置授权程序servlet
        poCtrl.setServerPage("/poserver.zz");
        //添加自定义按钮
        poCtrl.addCustomToolButton("保存", "Save", 1);
        //保存按钮接口地址
        poCtrl.setSaveFilePage("/save");
        //打开文件(打开的文件类型由OpenModeType决定,docAdmin是一个word,并且是管理员权限,如果是xls文件,则使用openModeType.xls开头的,其他的office格式同等),最后一个参数是作者
        // TODO 这里有个坑,这里打开的文件是本地的,地址如果写成/结构的路径,页面就会找不到文件,会从http://xxxxx/G/id...去找,写成\\就是从本地找
        poCtrl.webOpen("d:\\test.docx", OpenModeType.docAdmin, "光哥");
        //pageoffice 是文件的变量,前端页面通过这个变量加载出文件
        map.put("pageoffice", poCtrl.getHtmlCode("PageOfficeCtrl1"));
        //跳转到word.html
        return "word";
    }

    /**
     * 在线ppt文档编辑
     *
     * @param request
     * @param map
     * @return
     */
    @GetMapping("/ppt")
    public String showPPT(HttpServletRequest request, Map map) {
        PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
        //设置授权程序servlet
        poCtrl.setServerPage("/poserver.zz");
        //添加自定义按钮
        poCtrl.addCustomToolButton("保存", "Save", 1);
        //保存接口地址
        poCtrl.setSaveFilePage("/save");
        //打开文件(打开的文件类型由OpenModeType决定,docAdmin是一个word,并且是管理员权限,如果是xls文件,则使用openModeType.xls开头的,其他的office格式同等),最后一个参数是作者
        // TODO 这里有个坑,这里打开的文件是本地的,地址如果写成/结构的路径,页面就会找不到文件,会从http://xxxxx/G/id...去找,写成\\就是从本地找
        poCtrl.webOpen("G:\\ideaProject\\springboot-demo\\online-office\\src\\main\\resources\\file\\test.pptx", OpenModeType.pptNormalEdit, "光哥");
        //pageoffice 是文件的变量,前端页面通过这个变量加载出文件
        map.put("pageoffice", poCtrl.getHtmlCode("PageOfficeCtrl1"));
        //跳转到word.html
        return "ppt";
    }

    /**
     * 保存文件接口
     *
     * @param request
     * @param response
     */
    @RequestMapping("/save")
    public void saveFile(HttpServletRequest request, HttpServletResponse response) {
        // 保存修改后的文件
        FileSaver fs = new FileSaver(request, response);
        fs.saveToFile("d:\\test.docx");
        fs.close();
    }

}

8、templates中写html

word.html (注意:POBrowser.openWindowModeless第一个参数  路径)




    
    在线编辑Office文件
    
    





ww.html(后来又随便测试用谷歌、火狐打开pageoffice又增加的)可以自己定义所使用html




    
    在线编辑Office文件
    
    


POBrowser方式打开Word文档


 9、效果

springboot+pageoffice实现Word在线编辑_第6张图片

 点击:(没安装时会提示下载安装)

springboot+pageoffice实现Word在线编辑_第7张图片

 springboot+pageoffice实现Word在线编辑_第8张图片

你可能感兴趣的:(pageoffice)