pageOffice集成简述

(下列简述是跨域请求,将文件服务器中的文件下载到本地,然后打开,保存之后再次上传到服务器)

1:下载试用版本项目文件

Samples4:

是pageOffice测试项目包,直接可在Tomcat WebApps 中运行,

访问localhost:8080/Samples4/index.html即可访问到pageOffice所有测试案例

集成文件:

lib:是集成项目所需的jar包,

web.xml是集成项目中需要在web.xml中配置的配置内容

2:集成

(1)引入相关js

(2)符合条件的文件添加事件(可将连接分开来写,互相不干扰)

3:java后台页面跳转控制

word_edit.jsp

(1):pageoffice服务配置,必须有

(2):pageoffice操作按钮配置,可视需求而定,

(3):后台响应返回数据

(4):通过文件类型判断打开文件所需要的模板

word_read.jsp就是在word_edit.jsp中保存操作去掉即可

word_save.jsp

如果在java中对文件进行保存可在word_edit.jsp保存设置中直接调用后台保存

tao_hong.jsp (模板后缀和要套红的后缀必须一致,否则可能导致文件损坏)

<%@page import="com.jrfmail.common.util.FileUtils"%>

<%@page import="java.net.URLEncoder"%>

<%@ page language="java"

import="java.util.*,com.zhuozhengsoft.pageoffice.*,java.sql.*,java.io.*,javax.servlet.*,javax.servlet.http.*"

pageEncoding="utf-8"%>

<%@page import="com.zhuozhengsoft.pageoffice.wordwriter.DataRegion"%>

<%@page import="com.zhuozhengsoft.pageoffice.wordwriter.WordDocument"%>

<%!

public void copyFile(String oldPath, String newPath) {

try {

int bytesum = 0;

int byteread = 0;

File oldfile = new File(oldPath);

if (oldfile.exists()) { //文件存在时

InputStream inStream = new FileInputStream(oldPath); //读入原文件

FileOutputStream fs = new FileOutputStream(newPath);

byte[] buffer = new byte[1444];

int length;

while ((byteread = inStream.read(buffer)) != -1) {

bytesum += byteread; //字节数 文件大小

//System.out.println(bytesum);

fs.write(buffer, 0, byteread);

}

inStream.close();

}

} catch (Exception e) {

System.out.println("复制单个文件操作出错");

e.printStackTrace();

}

}

%>

<%

//获取需要的数据

String fileName = (String)request.getAttribute("fileName");

Integer fileId = (Integer)request.getAttribute("fileId");

Integer userId = (Integer)request.getAttribute("userId");

String userName = (String)request.getAttribute("userName");

String mbName = request.getParameter("mb");

//***************************卓正PageOffice组件的使用********************************

PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);

poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); //此行必须

poCtrl1.setCustomToolbar(false);

poCtrl1.setSaveFilePage("word_save.do?fileId="+fileId);

System.out.println(fileName);

String webFileName = URLEncoder.encode(fileName, "UTF-8");

if (mbName != null && mbName.trim() != "") {

// 选择模板后执行套红

// 复制模板,命名为正式发文的文件名:zhengshi.doc

String templateName = request.getParameter("mb");

System.out.print(templateName);

String templatePath = getServletContext().getRealPath(templateName);

String filePath = getServletContext().getRealPath("/temp/"+userId+"/" + fileName);

//copyFile(templatePath,filePath);

// 填充数据和正文内容到“zhengshi.doc”

WordDocument doc = new WordDocument();

//DataRegion copies = doc.openDataRegion("PO_Copies");

//copies.setValue("6");

DataRegion docNum = doc.openDataRegion("PO_DocNum");

// docNum.setValue("001");

//DataRegion issueDate = doc.openDataRegion("PO_IssueDate");

//issueDate.setValue("2013-5-30");

// DataRegion issueDept = doc.openDataRegion("PO_IssueDept");

//issueDept.setValue("开发部");

DataRegion sTextS = doc.openDataRegion("PO_STextS");

sTextS.setValue("[word]/temp/"+userId+"/"+webFileName+"[/word]");//写公司文件的路径

DataRegion sTitle = doc.openDataRegion("PO_sTitle");

//sTitle.setValue("文件");

DataRegion topicWords = doc.openDataRegion("PO_TopicWords");

//topicWords.setValue("Pageoffice、 套红");

poCtrl1.setWriter(doc);

poCtrl1.webOpen(templateName, OpenModeType.docNormalEdit, userName);

}else {

System.out.println("/temp/"+userId+"/" + webFileName);

poCtrl1.webOpen("/temp/"+userId+"/" + webFileName, OpenModeType.docNormalEdit, userName);

}

%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title></title>

<link href="images/csstg.css" rel="stylesheet" type="text/css" />

<script type="text/javascript">

//初始加载模板列表

function load() {

if (getQueryString("mb") != null)

document.getElementById("templateName").value = getQueryString("mb");

}

//获取url参数

function getQueryString(name) {

var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");

var r = window.location.search.substr(1).match(reg);

if (r != null)

return unescape(r[2]);

else

return null;

}

//套红

function taoHong() {

var mb = document.getElementById("templateName").value;

document.getElementById("form1").action = "/mail/show_word.do?id=<%=fileId%>&showType=3&mb=" + mb;

document.forms[0].submit();

}

//保存并关闭

function saveAndClose() {

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

window.external.close();

}

</script>

</head>

<body οnlοad="load();" >

<div id="content">

<div id="textcontent" style="width: 1000px; height: 800px;">

<div class="flow4">

<span style="width: 100px;"> </span><strong>文档主题:</strong>

<span style="color: Red;">测试文件</span>

<form method="post" id="form1">

<strong>模板列表:</strong>

<span style="color: Red;"> <select name="templateName"

id="templateName" style='width: 240px;'>

<option value='/temp/taohong/temp2008.doc' selected="selected">

模板一

</option>

<option value='/temp/taohong/temp2009.doc'>

模板二

</option>

<option value='/temp/taohong/temp2010.doc'>

模板三

</option>

</select> </span>

<span style="color: Red;"><input type="button" value="一键套红"

οnclick="taoHong()"/> </span>

<span style="color: Red;"><input type="button" value="保存关闭"

οnclick="saveAndClose()"/> </span>

</form>

</div>

<%=poCtrl1.getHtmlCode("PageOfficeCtrl1")%>

</div>

</div>

</body>

</html>

pageoffice集成相关推荐

  1. ①. SpringBoot整合PageOffice实现在线编辑Word和Excel

    ①. SpringBoot整合PageOffice实现在线编辑Word和Excel PageOffice官网: http://www.zhuozhengsoft.com/ PageOffice集成说明 ...

  2. 用pageOffice文档控件实现 office文档在线编辑

    第三方文档控件,pageOffice 系统开发中经常要处理办公文档,如果word,excel,ppt,编辑整理,保存,归档. 开发市场上也有很多第三文文档控件,多年的总结,还是认为pageOffice ...

  3. VBA实现为Excel中自定义名称的单元格添加批注

    一.本地office中通过创建宏实现此需求 1.打开一个Excel文件,在需要插入批注的单元格右击-定义名称(myTable1).点击菜单栏-视图-宏-查看宏-输入宏名-创建宏 ​ 2.进入VBA编辑 ...

  4. Java实现合并word文档并打开合并后文档

    前言: 有时我们的系统中有这样的需求:用户将文件上传到服务器,然后需要我们将其中一篇文档当做段落插入到另一篇文档中. 要完成这种需求,如果从头到尾由我们自己来实现的话,首先要会集成ActiveX控件, ...

  5. java 在线给word 文件插入图片,并设置图片大小

    一.前言: 有时我们想在一篇word文档中的指定位置添加一张服务器上的图片,并且并且设置图片大小.这个对文档的操作一定是需要第三方api的.市面上对文档处理的插件有POI以及openoffice等等, ...

  6. Java集成PageOffice在线打开编辑word文件 - Spring Boot

    开发环境:JDK1.8.Eclipse.Sping Boot + Thymeleaf框架. 一. 构建Sping Boot + Thymeleaf框架的项目(不再详述): 1. 新建一个maven p ...

  7. java office 集成开发_[转载]Java集成PageOffice在线打开编辑word文件 - Spring Boot

    开发环境:JDK1.8.Eclipse.Sping Boot + Thymeleaf框架. 一. 构建Sping Boot + Thymeleaf框架的项目(不再详述): 1. 新建一个maven p ...

  8. Vue+springboot集成PageOffice实现在线编辑Word、excel文档

    说明: PageOffice是一款在线的office编辑软件,帮助Web应用系统或Web网站实现用户在线编辑Word.Excel.PowerPoint文档.可以完美实现在线公文流转,领导批阅,盖章.可 ...

  9. Vue+SpringBoot 集成 PageOffice 实现在线编辑Word、excel文档

    说明: PageOffice是一款在线的office编辑软件,帮助Web应用系统或Web网站实现用户在线编辑Word.Excel.PowerPoint文档.可以完美实现在线公文流转,领导批阅,盖章.可 ...

最新文章

  1. chrome inspect 离线调试-工具包 怎么使用
  2. GetLongPathName和GetShortPathName函数
  3. 3.5 矩阵 $4$ 个空间和方程 $A\mathbf{x}=\mathbf{y}$ 的关系
  4. QT [006][basic] explicit关键字详解
  5. Android doc |Getting Started|部分 部分译文 --Building Your First App
  6. Spring使用Cache、整合Ehcache
  7. PDF Checkpoint for mac(pdf文件批量处理工具)
  8. 电烤箱计算机控制系统,台式电烤箱及其控制系统 Desktop oven and control system
  9. 如何设置.net控件SplitContainer平均分配
  10. Endnote IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS/TIE/TPEL 参考文献格式模板
  11. delphi控制excel ,在指定单元格后插入行
  12. java 100%3.0_java经典选择题100例及答案
  13. win10 桌面颜色变成灰色
  14. python123程序设计题说句心里话a_C程序设计基础(2019年春)-中国大学mooc-试题题目及答案...
  15. 原来这才是折叠屏的刚需...
  16. 连接查询之内连接(等值连接、非等值连接和自连接)
  17. 图解Java多线程设计模式——Java多线程基础
  18. win10计算机配置在哪里打开,详细教您win10设备管理器在哪打开
  19. 谭浩强c语言不讲位运算呢,谭浩强c语言教程_第十二章-位运算谭浩强c语言教程_第十二章-位运算.doc...
  20. Qt 打印机打印条形码,二维码

热门文章

  1. 契约测试框架-Pact实践
  2. 【信息论】互信息I(X;Y)中H(X)怎么推导出来——p(x)怎么变成p(x,y)
  3. 【精通Java篇 | Java序列化】详讲(反)序列化对象、序列化\反序列化流
  4. 千年3单机修改服务器经验,千年3练级挂经验
  5. php英文翻译,利用有道翻译Api实现英文翻译效能
  6. PHP版本百度翻译有道云翻译讯飞云翻译api相关接口
  7. 云原生|kubernetes|部署MySQL一主多从复制集群(基于Binlog+Position的复制)
  8. P2881 [USACO07MAR]Ranking the Cows G
  9. runTime runLoop
  10. TypeScript和JavaScript的区别,全面解读超详细