PageOffice mysql_pageoffice

本文档详细介绍了如何使用PageOffice在Java Web环境中实现Word文档的在线编辑和保存,涉及到JSP页面配置、Java控制器代码以及与MySQL数据库的集成。通过配置PageOffice的服务器页面、设置数据标签和工具栏,可以实现在网页中打开、编辑存储在MySQL的Word文档,并提供数据回显功能。
摘要由CSDN通过智能技术生成

一、选择文件打开

1.postup.exe安装

88e59ccec71584468f1d78ebd9c4e2b2.png

2.导入jar包:pageoffice.jar

a6180ca5bef4979598e52ef6370d4ff6.png

理论上不需要印章功能下面两个不需要导入,我只用到了第一个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目录下

9c9fd6195803d4a7d9edcea3fb6f925b.png

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);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值