一、选择文件打开
1.postup.exe安装
2.导入jar包:pageoffice.jar
理论上不需要印章功能下面两个不需要导入,我只用到了第一个jar包,用于导出word文档在线编辑并保存.
3.再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
4.这里修改成您的印章简易管理页的管理员登录密码,为了安全,强烈建议修改!!!
如果您用的是默认的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
5.调用pageoffice需要在jsp中加入下面代码:
注意:由于再 准备3 中已经再web.xml中配置了pageoffice.js和jquery.min.js,所以此处无需将js文件放入webapp目录下
6.index.jsp
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<
My JSP 'index.jsp' starting page在线编辑
word测试
7.word.jsp
import="java.util.*,com.zhuozhengsoft.pageoffice.*"
pageEncoding="utf-8"%>
PageOfficeCtrl poCtrl = (PageOfficeCtrl)request.getAttribute("poCtrl");
%>
//隐藏标题栏
document.getElementById("PageOfficeCtrl1").Titlebar = false;
//隐藏菜单栏
document.getElementById("PageOfficeCtrl1").Menubar = false;
function importWord() {
document.getElementById("PageOfficeCtrl1").WordImportDialog();
}
//Excel打开
function ExcelImportDialog() {
document.getElementById("PageOfficeCtrl1").ExcelImportDialog();
}
//保存
function SaveDocument() {
document.getElementById("PageOfficeCtrl1").WebSave();
}
//打印
function ShowPrintDlg() {
document.getElementById("PageOfficeCtrl1").ShowDialog(4); //打印对话框
}
//全屏
function SwitchFullScreen() {
document.getElementById("PageOfficeCtrl1").FullScreen = !document.getElementById("PageOfficeCtrl1").FullScreen;
}
//關閉
function CloseFile(){
window.external.close();
}
function ShowDefineDataTags() {
document.getElementById("PageOfficeCtrl1").ShowHtmlModelessDialog("dataRegionDlg", "parameter=xx", "left=300px;top=390px;width=520px;height=410px;frame:no;");
}
//获取后台定义的Tag 字符串
function getTagNames() {
var tagNames = document.getElementById("PageOfficeCtrl1").defineTagNames;
return tagNames;
}
//定位Tag
function locateTag(tagName) {
var appSlt = document.getElementById("PageOfficeCtrl1").Document.Application.Selection;
var bFind = false;
//appSlt.HomeKey(6);
appSlt.Find.ClearFormatting();
appSlt.Find.Replacement.ClearFormatting();
bFind = appSlt.Find.Execute(tagName);
if (!bFind) {
document.getElementById("PageOfficeCtrl1").Alert("已搜索到文档末尾。");
appSlt.HomeKey(6);
}
window.focus();
}
//添加Tag
function addTag(tagName) {
try {
var tmpRange = document.getElementById("PageOfficeCtrl1").Document.Application.Selection.Range;
tmpRange.Text = tagName;
tmpRange.Select();
return "true";
} catch (e) {
return "false";
}
}
//删除Tag
function delTag(tagName) {
var tmpRange = document.getElementById("PageOfficeCtrl1").Document.Application.Selection.Range;
if (tagName == tmpRange.Text) {
tmpRange.Text = "";
return "true";
}
else
return "false";
}
8.Controller
@RequestMapping("openword")
public String openword(HttpServletRequest request, HttpServletResponse response) {
WordDocument doc = new WordDocument();
doc.getTemplate().defineDataTag("{ 甲方 }");
doc.getTemplate().defineDataTag("{ 乙方 }");
PageOfficeCtrl poCtrl=new PageOfficeCtrl(request);
poCtrl.setServerPage(request.getContextPath()+"/poserver.zz");//设置服务页面
poCtrl.addCustomToolButton("Word","importWord()",13);//添加自定义保存按钮
poCtrl.addCustomToolButton("Excel","ExcelImportDialog()",13);//添加自定义保存按钮
poCtrl.addCustomToolButton("定义数据区域", "ShowDefineDataTags()", 20);
poCtrl.addCustomToolButton("保存", "SaveDocument()", 1);
poCtrl.addCustomToolButton("打印", "ShowPrintDlg()", 6);
poCtrl.addCustomToolButton("-", "", 5);
poCtrl.addCustomToolButton("全屏切换", "SwitchFullScreen()", 4);
poCtrl.addCustomToolButton("关闭", "CloseFile()", 21);
//设置保存页面
poCtrl.setSaveFilePage("savefile");
poCtrl.setTagId("PageOfficeCtrl1"); //此行必须
poCtrl.setTheme(ThemeType.Office2007);
poCtrl.setBorderStyle(BorderStyleType.BorderThin);
poCtrl.setWriter(doc);
request.setAttribute("poCtrl", poCtrl);
return "BasicInformation/openDocument";
}
//文件保存
@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();
}
二、数据回显
1.js调用文件
POBrowser.openWindowModeless('openfile?id='+aData.num,'width=1200px;height=800px;');
2.openfile.jsp
import="java.util.*,com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*"
pageEncoding="utf-8"%>
审计通知书模板function Save() {
document.getElementById("PageOfficeCtrl1").WebSave();
}
3.controller文件
@RequestMapping(value = "openfile")
public String openfile(HttpServletRequest request, String id) {
AUDIT_PNOTICE_MB mb = noticeService.getSjtzsByNum(id);
String suffix = mb.getName().substring(mb.getName().lastIndexOf(".") + 1);
String filePath = AddressUtil.getUpload_address() + "\\" + Constants.PATH_TZMB
+ "\\" + mb.getNum()+"."+suffix;
PageOfficeCtrl poCtrl=new PageOfficeCtrl(request);
poCtrl.setServerPage(request.getContextPath() + "/poserver.zz");//设置授权程序servlet
poCtrl.setTitlebar(false); //隐藏标题栏
poCtrl.setMenubar(false); //隐藏菜单栏
poCtrl.setOfficeToolbars(false);//隐藏Office工具条
poCtrl.setCustomToolbar(false);
if ("DOC".equals(suffix.toUpperCase()) || "DOCX".equals(suffix.toUpperCase())) {
poCtrl.webOpen(filePath,OpenModeType.docReadOnly,"张三");//D:\\UploadFiles\\22.docx
}else {
poCtrl.webOpen(filePath,OpenModeType.xlsReadOnly,"张三");
}
poCtrl.setTagId("PageOfficeCtrl1"); //此行必须
return "BasicInformation/openfile";
}
数据区域
dataRegionDlg.jsp
#tagTable td{ height:25px; border-bottom:dotted 1px gray;}
// 方法: window.external.CallParentFunc
// 作用: 调用父窗口中的js函数, 目前只支持传递一个参数.
var names = window.external.CallParentFunc("getTagNames", "");
alert(names)
var tagArr = names.split(";");
//首次加载数据
function load() {
searchBookMark('');
return;
}
//加载数据列表
function searchBookMark(s) {
//删除所有行
var tb1 = document.getElementById("tagTable");
var rCount = tb1.rows.length;
for (var i = 0; i < rCount; i++) {
tb1.deleteRow(0);
}
var oTable = document.getElementById("tagTable");
for (var i = 0; i < tagArr.length; i++) {
if (tagArr[i] != null && tagArr[i] != "" && 0 == tagArr[i].toLocaleLowerCase().indexOf(s.toLocaleLowerCase())) {
var oTr = oTable.insertRow();
var oTd = oTr.insertCell();
oTd.innerHTML = tagArr[i];
oTd = oTr.insertCell();
oTd.innerHTML = " 添加";
oTd = oTr.insertCell();
oTd.innerHTML = " 定位";
oTd = oTr.insertCell();
oTd.innerHTML = " 删除";
}
}
}
function Button1_onclick() {
var s = document.getElementById("Text1").value.toLocaleLowerCase();
var tb1 = document.getElementById("tagTable");
var rCount = tb1.rows.length;
for (var i = 0; i < rCount; i++) {
tb1.deleteRow(0);
}
var oTable = document.getElementById("tagTable");
for (var i = 0; i < tagArr.length; i++) {
if (tagArr[i] != null && tagArr[i] != "" && tagArr[i].toLocaleLowerCase().indexOf(s) >= 0) {
var oTr = oTable.insertRow();
var oTd = oTr.insertCell();
oTd.innerHTML = tagArr[i];
oTd = oTr.insertCell();
oTd.innerHTML = " 添加";
oTd = oTr.insertCell();
oTd.innerHTML = " 定位";
oTd = oTr.insertCell();
oTd.innerHTML = " 删除";
}
}
}
//******** Tag 操作 ************************************************************
function add(name) {
if ("true" == window.external.CallParentFunc("addTag", name)) {
}
}
function del(name) {//alert(name);
if ("false" == window.external.CallParentFunc("delTag", name)) {
alert("请先执行\"定位\"操作,然后再删除。");
}
}
function locate(name) {
window.external.CallParentFunc("locateTag", name);
}
待添加数据标签:
load();
//alert(2);