pageoffice 骑缝章_pageoffice实现网页打开编辑保存word文档(基于SSM框架)

pageoffice是一款网页集成word.excel...等office工具

并不免费,但可以试用练习

SSM框架搭建过程就省略了

注意:由于谷歌/火狐升级,不支持插件嵌入,建议使用POBrowser.openWindowModeless 的方法启动pageoffice.

效果图:

4a16355901e5

image.png

1.使用前准备

postup.exe安装

4a16355901e5

image.png

导入jar包:pageoffice.jar

4a16355901e5

image.png

理论上不需要印章功能下面两个不需要导入,我只用到了第一个jar包,用于导出word文档在线编辑并保存.

再web.xml中添加下面代码:

poserver

com.zhuozhengsoft.pageoffice.poserver.Server

poserver

/poserver.zz

poserver

/sealsetup.exe

poserver

/posetup.exe

poserver

/pageoffice.js

poserver

/jquery.min.js

poserver

/pobstyle.css

adminseal

com.zhuozhengsoft.pageoffice.poserver.AdminSeal

adminseal

/adminseal.zz

adminseal

/loginseal.zz

adminseal

/sealimage.zz

mht

message/rfc822

adminseal-password

111111

这里修改成您的印章简易管理页的管理员登录密码,为了安全,强烈建议修改!!!

如果您用的是默认的Access数据库,下面节点不用修改,继续保持被注释状态或直接删除。 如果您用的是Oracle、MySQL等其他数据库,请将下面节点的注释去掉,并且修改成您的印章数据库连接参数。最好把WEB-INF\lib下的seal.mdb也删除掉。

posealdb-driver

oracle.jdbc.driver.OracleDriver

posealdb-url

jdbc:oracle:thin:@192.168.0.1:1521:orcl

posealdb-username

system

posealdb-password

111111

2.使用方法

1.再webapp下建一个文件夹doc,存储word文件

4a16355901e5

image.png

2.调用pageoffice需要在jsp中加入下面代码:

注意:由于再 准备3 中已经再web.xml中配置了pageoffice.js和jquery.min.js,所以此处无需将js文件放入webapp目录下

4a16355901e5

image.png

3.index.jsp

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<

My JSP 'index.jsp' starting page

在线编辑

word测试

4.word.jsp

import="java.util.*,com.zhuozhengsoft.pageoffice.*"

pageEncoding="UTF-8"%>

PageOfficeCtrl poCtrl=(PageOfficeCtrl)request.getAttribute("poCtrl");

%>

最简单的打开保存Word文件

function Save() {

document.getElementById("PageOfficeCtrl1").WebSave();

window.external.close();//关闭POBrowser窗口

}

5.Controller

@RequestMapping("openword")

public String openword(HttpServletRequest request, HttpServletResponse response){

PageOfficeCtrl poCtrl=new PageOfficeCtrl(request);

//动态替换模版内容

WordDocument doc=new WordDocument();

doc.openDataRegion("Incubator").setValue("测试修改");//文档书签替换Incubator标签

request.setAttribute("poCtrl", poCtrl);

//设置服务页面

poCtrl.setServerPage(request.getContextPath()+"/poserver.zz");

//添加保存按钮

poCtrl.addCustomToolButton("保存并关闭","Save",1);

//设置保存的action

poCtrl.setSaveFilePage("savefile");

//打开word

poCtrl.setWriter(doc);//将替换的标签注入文档中

poCtrl.webOpen("doc/test.doc",OpenModeType.docAdmin,"张三");

poCtrl.setTagId("PageOfficeCtrl1"); //此行必须

return "Word";

}

//文件保存

@RequestMapping("savefile")

public void savefile(HttpServletRequest request, HttpServletResponse response){

FileSaver fs = new FileSaver(request, response);

fs.saveToFile(request.getSession().getServletContext().getRealPath("doc/") + "/" + fs.getFileName());

fs.close();

}

完成.

3.设置书签(区域动态填充数据)

此功能为企业版或专业版功能,需要用专业版测试注册号注册

1.添加书签(即区域)

WordDocument doc=new WordDocument();

//createDataRegion(区域名称,区域位置方位,位置)

DataRegion dg1=doc.createDataRegion("PO_first", DataRegionInsertType.After , "[home]");

//设置编辑属性

dg1.setEditing(true);

注意:书签命名规则未"PO_",后面设置值的时候直接使用""PO_""后的字段即可.

首次添加书签,可以使用"[home]"或"[end]"表明区域位置.

4a16355901e5

image.png

2.区域内数据动态填充

WordDocument doc=new WordDocument();

//打开区域设置值

doc.openDataRegion("first").setValue("测试填充数据");

4a16355901e5

image.png

4.问题总结

1.无意间修改了路径,导致保存失败

savefile.doc不存在问题

原因:保存路径与文件打开路径不一致

解决方案:在Controller中的savefile中修改fs.saveToFile(path)中的path路径,使其与word打开路径一致即可.

4a16355901e5

image.png

2.空指针异常

缺失代码:

非常重要,一定要加上,是控件的灵魂

request.setAttribute("poCtrl", poCtrl);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值