pageoffice在vue+springboot前后端分离项目中的应用方法

pageoffice在vue+springboot前后端分离项目中的应用方法1 因浏览器禁用插件无法使用内嵌在浏览器内部的 pageoffice 打开方式 需要使用 4 0 新增的 POBrowser 方式来在外部打开一个窗口去在线打开 office 故下面介绍的是基于 4 0 在线打开文档的一种方式 2 因 pageoffice 提供的示例全部是基于 jsp 的 所以无法放在 vue 中使用 所以我只能在后端使用 thymleaf 模板去做这件事情 首先可以去 pageoffice 的官网的下载中心下

2.因pageoffice提供的示例全部是基于jsp的,所以无法放在vue中使用,所以我只能在后端使用thymleaf模板去做这件事情。

首先可以去pageoffice的官网的下载中心下载最新版的office示例:

下载最新版即可

在上面jsp中有黄色的 <% %> 的代码块很容易能看出来是后端的代码,我们要做的就是把这一块移到后台,和前面的页面分开。

我们首先在配置文件中加入几个配置,代码如下:

 #pageoffice  #磁盘目录用来存放PageOffice注册成功之后生成的license.lic文件 posyspath: d:/lic #设置PageOffice自带印章管理程序的登录密码 popassword:  

然后在后端的controller层创建一个pageofficeController,代码如下:

/ * @author wj * @version 1.0 * @className pageofficeController * @description pageoffice测试 * @date 2019/11/07 8:30 */ @Controller public class pageofficeController { 
    @Value("${posyspath}") private String poSysPath; @Value("${popassword}") private String poPassWord; / * 添加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("/sealsetup.exe"); return srb; } / * 添加印章管理程序Servlet(可选) * * @return */ @Bean public ServletRegistrationBean servletRegistrationBean2() { 
    com.zhuozhengsoft.pageoffice.poserver.AdminSeal adminSeal = new com.zhuozhengsoft.pageoffice.poserver.AdminSeal(); adminSeal.setAdminPassword(poPassWord);//设置印章管理员admin的登录密码 //设置印章数据库文件poseal.db存放目录,该文件在当前demo的“集成文件”夹中 adminSeal.setSysPath(poSysPath); ServletRegistrationBean srb = new ServletRegistrationBean(adminSeal); srb.addUrlMappings("/adminseal.zz"); srb.addUrlMappings("/sealimage.zz"); srb.addUrlMappings("/loginseal.zz"); return srb; } / * 查看word * * @param request * @param map * @return */ @RequestMapping(value = "/word", method = RequestMethod.GET) public String showWord(HttpServletRequest request, Map<String, Object> map) { 
    //--- PageOffice的调用代码 开始 ----- PageOfficeCtrl poCtrl = new PageOfficeCtrl(request); poCtrl.setServerPage("/poserver.zz");//设置授权程序servlet poCtrl.webOpen("d:\\test.doc", OpenModeType.docAdmin, "张三"); map.put("pageoffice", poCtrl.getHtmlCode("PageOfficeCtrl1")); //--- PageOffice的调用代码 结束 ----- // ModelAndView mv = new ModelAndView("Word"); return "readword/Word"; } @RequestMapping("/newword") public String tonewword() { 
    return "readword/jump"; } 

前端2个HTML放在一个readword文件夹下

jump.html如下

 
    DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title 
      title> <script type="text/javascript" src="./jquery.min.js"> 
       script> <script type="text/javascript" src="./pageoffice.js" id="po_js_main"> 
        script>  
         head > <body >  
          
          body > <script type="text/javascript"> setTimeout(load,500); function load() { 
            // 最新的打开方式,width和height为打开的最外部边框大小 POBrowser.openWindowModeless('/word','width=1440px;height=860px'); }  
           script>  
            html> 

Word.html如下:

 
    DOCTYPE html> <html lang="en" xmlns:th="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8"> <title>Title 
      title> <script type="text/javascript" src="./jquery.min.js"> 
       script>  
        head> <body> <div style="width:auto;height:790px;margin: 0 auto;" th:utext="${pageoffice}">  
         div>  
          body> <script type="text/javascript">  
           script>  
            html> 

前端调用pageoffice只需要调用接口“/newword”即可。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210469.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午7:36
下一篇 2026年3月19日 上午7:37


相关推荐

  • 用vscode创建vue项目

    用vscode创建vue项目首先需要安装 nodejs 因为要使用 npm 命令 1 新建一个文件夹 我新建的文件夹是 myvue 用 vscode 打开这个文件 再用 vscode 新建一个终端 点击终端 gt 新建终端 然后输入命令 npminstall gvue cli 如下 2 输入命令 npminstall gwebpack 安装 webpack 3 输入命令 vueinitwebpa 初始化项目 中间会出现一些配置 直接按回车就可以了初始化项目完成 4 之后

    2026年3月17日
    0
  • js 前进 后退 刷新

    js 前进 后退 刷新前进<inputtype=buttonvalue=前进οnclick=”window.history.go(1)”><inputtype=buttonvalue=前进οnclick=”window.history.forward()”>后退<inputtype=buttonvalue=后退οnclick=”window.history.go(-1)”><inputtype=buttonvalue=后退οnclick=”window

    2022年7月25日
    13
  • TCP标志:PSH和URG

    TCP标志:PSH和URGTCP 标头包含几个一位布尔字段 称为标志 用于影响 TCP 连接上的数据流 忽略 RFC3168 为拥塞通知添加的 CWR 和 ECE 标志 有六个 TCP 控制标志 下面列出的其中四个用于控制 TCP 连接的建立 维护和拆除 并且对于甚至进行了基本数据包分析的任何人都应该熟悉 SYN nbsp 启动连接 ACK nbsp 确认收到的数据 FIN nbsp 关闭连接 RST nbsp 中止连接以响应错误其他两个标志 PSH 推 和

    2025年10月17日
    5
  • rpm命令安装命令

    rpm命令安装命令1 安装软件的命令格式 rpm ivhfilename rpm root CENTOS100z08 rpm ivhhdparm 9 43 5 el7 x86 64 rpmwarning hdparm 9 43 5 el7 x86 64 rpm HeaderV3RSA SHA256Signat keyIDf4a80eb NOKEYPrepari 1 00 0

    2026年3月17日
    3
  • 即梦ai怎么给图片换成自己的脸

    即梦ai怎么给图片换成自己的脸

    2026年3月12日
    2
  • linux 开启redis端口

    linux 开启redis端口执行命令 1 sbin iptables IINPUT ptcpdport637 jACCEPT2 etc init d iptablessave serviceiptab

    2026年3月19日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号