pageoffice6 实现提取数据区域为子文件(Word拆分)
在实际的开发过程中,有时会遇到希望提取Word文档中部分内容保存为子文件的需求,PageOffice支持提取Word文档数据区域中的内容为一个Word文件流,在服务器端创建PageOffice的WordReader命名空间中的WordDocument对象并获取到DataRegion对象,再调用DataRegion对象的FileBytes属性就可以得到这个子Word文件流。
注意
PageOffice获取Word文档中指定位置的数据,是通过调用PageOffice获取数据区域的功能,实现此目的。在PageOffice的概念里提到的数据区域,本质上就是书签,但是只有“PO_”开头的书签才叫数据区域。
后端代码
在后端编写代码调用webOpen方法以表单提交模式docSubmitForm打开文件,设置数据区域SubmitAsFile属性为true,并设置接收处理PageOffice客户端控件提交数据的服务器端后台方法为:saveData,如果用户在线编辑文档保存时,数据区域中的内容就会被抽取为Word文件流,并提交到服务器端后台方法saveData,保存为子文件即可。
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
WordDocument wordDoc = new WordDocument();
//打开数据区域,openDataRegion方法的参数代表Word文档中的书签名称
DataRegion dataRegion1 = wordDoc.openDataRegion("PO_Sub1");
dataRegion1.setSubmitAsFile(true);
DataRegion dataRegion2 = wordDoc.openDataRegion("PO_Sub2");
dataRegion2.setSubmitAsFile(true);
dataRegion2.setEditing(true);
DataRegion dataRegion3 = wordDoc.openDataRegion("PO_Sub3");
dataRegion3.setSubmitAsFile(true);
poCtrl.setWriter(wordDoc);//此行必须
poCtrl.setSaveDataPage("saveData");//此行必须
//webOpen的第一个参数支持能够输出下载文件的Url相对地址或者文件在服务器上的磁盘路径两种方式
//查看详细,请在本站搜索“PageOffice属性或方法中涉及到的URL路径或磁盘路径的说明”
poCtrl.webOpen("D:\\documents\\test.docx", OpenModeType.docSubmitForm, "张三");
在服务器端后台方法saveData中,创建com.zhuozhengsoft.pageoffice.wordreader命名空间中的WordDocument对象,提取各数据区域中的子文档。
WordDocument doc = new WordDocument(request, response);
byte[] bWord;
DataRegion dr1 = doc.openDataRegion("PO_Sub1");
bWord = dr1.getFileBytes();
FileOutputStream fos1 = new FileOutputStream("D:\\documents\\sub1.doc");
fos1.write(bWord);
fos1.flush();
fos1.close();
DataRegion dr2 = doc.openDataRegion("PO_Sub2");
bWord = dr2.getFileBytes();
FileOutputStream fos2 = new FileOutputStream("D:\\documents\\sub2.doc");
fos2.write(bWord);
fos2.flush();
fos2.close();
DataRegion dr3 = doc.openDataRegion("PO_Sub3");
bWord = dr3.getFileBytes();
FileOutputStream fos3 = new FileOutputStream("D:\\documents\\sub3.doc");
fos3.write(bWord);
fos3.flush();
fos3.close();
doc.close();
参考链接:提取数据区域为子文件(Word拆分)
pageoffice6 实现提取数据区域为子文件(Word拆分)的更多相关文章
- c++读取文件夹及子文件夹数据
这里有两种情况:读取文件夹下所有嵌套的子文件夹里的所有文件 和 读取文件夹下的指定子文件夹(或所有子文件夹里指定的文件名) <ps,里面和file文件有关的结构体类型和方法在 <io.h ...
- Java虚拟机 - 结构原理与运行时数据区域
http://liuwangshu.cn/java/jvm/1-runtime-data-area.html 前言 本来计划要写Android内存优化的,觉得有必要在此之前介绍一下Java虚拟机的相关 ...
- 读书笔记:深入理解java虚拟机(一)虚拟机的运行时的数据区域
最近在看深入了解java虚拟机第一版(周志明著),特此写读书笔记,整理其中重要的东西和自己的理解. ”java与c++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却 ...
- matlab从曲线图提取数据
同学用肉体一顿饭让我帮他做下这个DDL 样图是一张非常扭曲的三虚线图他甚至想OCR识别x轴y轴坐标单位 上谷歌查了查,对于曲线图提取数据基本上是手动在曲线上取几个点,然后由这个几个点开始遍历领域点,判 ...
- 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合
package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...
- JVM 内存区域 (运行时数据区域)
JVM 内存区域 (运行时数据区域) 链接:https://www.jianshu.com/p/ec479baf4d06 运行时数据区域 Java 虚拟机在执行 Java 程序的过程中会把它所管理的内 ...
- MATLAB检查指定路径中的子文件夹中的文件名中是否带有空格
测试文件夹为: clear;close all;clc; %% %程序实现的功能 %检查指定路径中的子文件夹中的文件名中是否带有空格,并去掉文件名中的空格 %% %程序中用到的之前不清楚的函数如下 % ...
- 通过ftp同步服务器文件:遍历文件夹所有文件(含子文件夹、进度条);简单http同步服务器文件实例
该代码主要实现,指定ftp服务地址,遍历下载该地址下所有文件(含子文件夹下文件),并提供进度条显示:另外附带有通过http地址方式获取服务器文件的简单实例 废话不多说,直接上代码: 1.FTPHelp ...
- Intermediate_JVM 20180306 : 运行时数据区域
Java比起C++一个很大的进步就在于Java不用再手动控制指针的delete与free,统一交由JVM管理,但也正因为如此,一旦出现内存溢出异常,不了解JVM,那么排查问题将会变成一项艰难的工作. ...
- 如何使用JMeter从文件中提取数据
在性能测试方面,重用响应数据至关重要.几乎(如果不是全部!)负载测试场景假设您: 从先前的响应中提取有趣的方面,并在下一个请求中重用它们(也称为相关) 确保实际响应符合预期(又称断言) 因此,如果您是 ...
随机推荐
- Array and Set work process
目录 Array work principle 分析Array操作步骤数 read find insert delete Set work principle 分析Set操作步骤数 read find ...
- 第十九篇:Django ORM外键关联关系
一.一对多的创建 二.一对多跨表操作 三.创建多对多 四.Ajax处识 五.模板继承与导入 六.自定义分页
- Hive 查看,删除分区
查看所有分区 show partitions 表名; 删除一般会有两种方案 1.直接删除hdfs文件 亲测删除hdfs路径后 查看分区还是能看到此分区 可能会引起其他问题 此方法不建议 2. 使用删除 ...
- 树模型-LightGBM-从三个层面改进xgb
LightGBM lightGBM总结
- 如何用vsftpd实现用户不同权限:只能下载,可上传,管理权限等 [仅供参考未亲测]
如何用vsftpd实现用户不同权限:只能下载,可上传,管理权限等 2007-01-29 10:20:09 分类: LINUX 前提条件: 必须安装包:vsftpd-2.0.1-5 ...
- input 去除默认样式
前言 如何不自己写框架,基本用不上. 正文 input{ border: 0px; background-color: none; outline: none; } input:focus{ outl ...
- jenkins 持续集成和交付——gogs安装(外篇)
前言 因为在jenkins 过程中一般需要去处理一些git的东西,为了完整性,填补一下git管理安装,这里使用gogs,因为gogs比较小,我运行的小机器能够承受,当然只适合个人,这里用来做实验,网上 ...
- 使用Elasticsearch做手机号和身份证号的模糊检索
使用Elasticsearch做手机号和身份证号的模糊检索 背景 客户想通过人名 四位数值 来检索人的信息 例如 张三 3421,例如需要检索包含张三和且手机号或者身份证里包含3421的数据 过程 e ...
- 浅谈TypeScript对业务可维护性的影响
前言 笔者认为, TypeScript是服务于业务的, 核心就是提高代码的可维护性. TypeScript是把双刃剑, 如果类型系统使用的不好, 反而会阻碍开发, 甚至最后就变成了anyScript. ...
- pip(国内常用镜像源)安装地址
国内常用镜像源 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/ 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国 ...