1.电子印章
<context-param> <param-name>adminseal-password</param-name> <param-value>111111</param-value> </context-param>
这里修改成您的印章简易管理页的管理员登录密码,为了安全,强烈建议修改!!!
如果您用的是默认的Access数据库,下面节点不用修改,继续保持被注释状态或直接删除。 如果您用的是Oracle、MySQL等其他数据库,请将下面节点的注释去掉,并且修改成您的印章数据库连接参数。最好把WEB-INF\lib下的seal.mdb也删除掉。
<context-param> <param-name>posealdb-driver</param-name> <param-value>oracle.jdbc.driver.OracleDriver</param-value> </context-param> <context-param> <param-name>posealdb-url</param-name> <param-value>jdbc:oracle:thin:@192.168.0.1:1521:orcl</param-value> </context-param> <context-param> <param-name>posealdb-username</param-name> <param-value>system</param-value> </context-param> <context-param> <param-name>posealdb-password</param-name> <param-value>111111</param-value> </context-param>2. 使用方法
环境变量定义
无封装方式使用pageoffice
<#script>
var OpenModeType = com.zhuozhengsoft.pageoffice.OpenModeType;
var poCtrl=new com.zhuozhengsoft.pageoffice.PageOfficeCtrl(action.request);
poCtrl.setServerPage(action.request.getContextPath()+"/poserver.jsp");
//添加自定义按钮
poCtrl.addCustomToolButton("保存","Save",1);
//设置保存页面
poCtrl.setSaveFilePage("SaveFile.jsp");
//打开Word文档
poCtrl.webOpen("http://192.168.0.200:8080/xxx.doc",OpenModeType.docNormalEdit,"张佚名");
poCtrl.setTagId("PageOfficeCtrl1");//此行必需
</#script>
输出
${action.request.getAttribute("PO_" + "PageOfficeCtrl1")}
com.zhuozhengsoft.pageoffice.OpenModeType 打开模式
- docRevisionOnly
- docAdmin
- docNormalEdit
- docReadOnly
- docHandwritingOnly
- docSubmitForm
- xlsNormalEdit
- xlsReadOnly
- xlsSubmitForm
- pptNormalEdit
- pptReadOnly
无封装方式如上代码比较啰嗦一些,所以提供了拦截器 com.jspx.txweb.interceptor.PageOfficeInterceptor 加载拦截器后将会自动载入 PageOfficeCtrl 控件,调用名称pageOfficeCtrl
<#script>
pageOfficeCtrl.setJsFunction_OnWordDataRegionClick("OnWordDataRegionClick()");
//添加自定义按钮
pageOfficeCtrl.addCustomToolButton("保存","Save",1);
//设置保存页面
pageOfficeCtrl.setSaveFilePage("SaveFile.jsp");
//打开Word文档
pageOfficeCtrl.webOpen("template/leaves.doc",docNormalEdit,"张佚名");
pageOfficeCtrl.setTagId("PageOfficeCtrl1");//此行必需
</#script>
输出
${action.getTag("PO_" + "PageOfficeCtrl1")}
是不是很简单。 下边是 PageOffice 使用方法的一些手记。
3.常用js函数
js获取word选中的文字
function getSelectionText(){ if (document.getElementById("PageOfficeCtrl1").Document.Application.Selection.Range.Text != "") { alert(document.getElementById("PageOfficeCtrl1").Document.Application.Selection.Range.Text); } else{ alert("您没有选择任何文本。"); } }
打印
function poPrint() { document.getElementById("PageOfficeCtrl1").ShowDialog(4);}
全屏
function poSetFullScreen() { document.getElementById("PageOfficeCtrl1").FullScreen = !document.getElementById("PageOfficeCtrl1").FullScreen;}
保存
function poSave() { document.getElementById("PageOfficeCtrl1").WebSave();}
常用属性设置
OfficeVendor 属性设置打开当前Office文档所用的办公软件,字符串类型。 document.getElementById("PageOfficeCtrl1").OfficeVendor = "MSOffice"|"WPSOffice"; //允许拷贝document.getElementById("PageOfficeCtrl1").AllowCopy = true|false; //false:不允许;true:允许 //设置Caption的值document.getElementById("PageOfficeCtrl1").Caption = Value;//设置Caption的值document.getElementById("PageOfficeCtrl1").Caption = Value;//保存返回结果,提示框提示是否保存成功strCustomSaveResult = document.getElementById("PageOfficeCtrl1").CustomSaveResult; //DocumentFileName 属性返回当前Office文档的文件名称,字符串类型,只读。strValue = document.getElementById("PageOfficeCtrl1").DocumentFileName; //FullScreen 属性设置控件窗口是否全屏显示,可读写。 document.getElementById("PageOfficeCtrl1").FullScreen = true|false; //IsDirty 属性判断控件中的文档是否已被修改,只读。boolValue = document.getElementById("PageOfficeCtrl1").IsDirty;
标签区域点击事件
function OnWordDataRegionClick(Name, Value, Left, Bottom) { if (Name == "PO_date") { dv = window.showModalDialog( "datetimer.htm", "44", "center:1;help:no;status:no;dialogLeft:" + Left + ";dialogTop:" + Bottom + ";dialogHeight:246px;dialogWidth:216px;scroll:no") if (dv) { if (dv == "null") obj.value = ''; else return dv; } } if (Name == "PO_dept") { var mObject = new Object(); mObject.SelectValue = ""; window.showModalDialog( "selectDept.htm", mObject, "dialogLeft:"+ Left + "px; dialogTop:" + Bottom + "px; dialogHeight:120px; dialogWidth:200px;center:no;scroll:no;status:no;"); if (mObject.SelectValue != "") { return (mObject.SelectValue); } }}
4.常用服务器端代码
//隐藏菜单栏 poCtrl1.setMenubar(false); //添加自定义按钮 poCtrl1.addCustomToolButton("在当前光标处用js插入超链接","addHyperLink",5); //隐藏工具栏 poCtrl1.setCustomToolbar(false); poCtrl1.webOpen("doc/test.doc", OpenModeType.docNormalEdit, "张三"); //此行必须 poCtrl1.setTagId("PageOfficeCtrl1");
获取标签值
WordDocument doc = new WordDocument(request, response); String sName = doc.openDataRegion("PO_name").getValue(); String sDept = doc.openDataRegion("PO_dept").getValue(); String sCause = doc.openDataRegion("PO_cause").getValue(); String sNum = doc.openDataRegion("PO_num").getValue(); String sDate = doc.openDataRegion("PO_date").getValue();
注意pageoffice包里边有两个 WordDocument 包,一个是用于写,一个是用于读,而且 doc.openDataRegion("POname").name 是 name 而不是POname
//doc在每次使用完后要close WordDocument doc = new WordDocument(request, response); //得到html中的表单的时候使用如下方法 doc.getFormField("method"); //遍历提交的标签数据 for (Object region:doc.getDataRegions()) { DataRegion dataRegion = (DataRegion)region; System.out.println("----dataRegion=" + dataRegion.getName()); }