pageoffice集成

pageoffice集成pageOffice 集成简述 下列简述是跨域请求 将文件服务器中的文件下载到本地 然后打开 保存之后再次上传到服务器 1 下载试用版本项目文件 Samples4 是 pageOffice 测试项目包 直接可在 TomcatWebApp 中运行 访问 localhost 8080 Samples4 index html 即可访问到 p

 

pageOffice集成简述

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

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

           pageoffice集成

         pageoffice集成

 Samples4:

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

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

集成文件:

          pageoffice集成

         

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

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

2:集成

(1)引入相关js

pageoffice集成

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

pageoffice集成

3:java后台页面跳转控制

         pageoffice集成

          pageoffice集成

 

word_edit.jsp

         pageoffice集成

         pageoffice集成

         pageoffice集成

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

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

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

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

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

word_save.jsp

pageoffice集成

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

pageoffice集成

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

 }

%>

 


//初始加载模板列表

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

}

            

                

                     文档主题:

                    测试文件

                    

                        模板列表:

                        

                        一键套红

                                οnclick=”taoHong()”/>

                        保存关闭

οnclick=”saveAndClose()”/>

                    

                

 

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

            

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/214693.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午3:40
下一篇 2026年3月18日 下午3:40


相关推荐

  • 如何注册和使用Manus

    如何注册和使用Manus

    2026年3月15日
    2
  • 电口与光口的区别

    电口与光口的区别电口与光口的区别光口光纤接口是用来连接光纤线缆的物理接口 其原理是利用了光从光密介质进入光疏介质从而发生了全反射 通常有 SC ST FC 等几种类型 它们由日本 NTT 公司开发 FC 是 FerruleConne 的缩写 其外部加强方式是采用金属套 紧固方式为螺丝扣 ST 接口通常用于 10Base F SC 接口通常用于 100Base FX 电口电口是相对光口来讲的

    2026年3月26日
    2
  • 计算机逻辑与或非运算规则_与 或 非 三种逻辑符号计算机

    计算机逻辑与或非运算规则_与 或 非 三种逻辑符号计算机与&&或||非!请举例子说明C语言中的与、或、非是C语言的逻辑运算符。1、逻辑与在C语言中逻辑与用&&表示。举例:a&&b(其中a、b都代表一个条件)如果a和b都为真,则结果为真,如果a和.或非与非或与非都说下或:+与:*非:取反三个事件a,b,c或非就是先a+b,再取反与非就是先a*b,再取反&按位与|按位或~按位非^…

    2022年10月11日
    3
  • cad快速选择命令快捷键_CAD图层快捷键命令应用讲解

    cad快速选择命令快捷键_CAD图层快捷键命令应用讲解左下角阅读原文看 CAD 视频好课推荐 1 CAD2014 点击查看 2 室内 CAD 点击查看 3 CAD2019 点击查看 4 CAD2018 点击查看 5 Bim 教程 点击查看 6 室内手绘 点击查看 7 CAD 三维 点击查看 8 全屋定制 点击查看 9 pscc2019 点击查看 10 MAC 版 CAD 点击查看 11 3dmax 教程 点击查看 12 UG 教程 点击查看 13 SU 教程 点击

    2026年3月16日
    2
  • python中print的用法_Python中print用法里面% ,”%s 和 % d” 代表的意思

    python中print的用法_Python中print用法里面% ,”%s 和 % d” 代表的意思Python 编程里面 s 和 d 代表的意思 s 表示格化式一个对象为字符 d 整数 Hello s zhang3 Hello zhang3 d 33 33 s d ab 3 ab 3 字符 标记转换说明符的开始 在 的左侧放置一个字符串 格式化字符串 而右侧则放置希望格式化的值 s 表示格式化规则 1 splu

    2025年8月7日
    5
  • layui 如何去dom_layui 弹出层

    layui 如何去dom_layui 弹出层这是一个可以重要也可以不重要的方法,重要的是,它的权利真的很大,尤其是在模块化加载layer时,你会发现你必须要用到它。它不仅可以配置一些诸如路径、加载的模块,甚至还可以决定整个弹层的默认参数。而说它不重要,是因为多数情况下,你会发现,你似乎不是那么十分需要它。但你真的需要认识一下这位伙计。如果您是采用seajs或者requirejs加载layer,你需要执行该方法来完成初始化的配置。比如:lay…

    2022年6月11日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号