国产麒麟、统信系统在线编辑word并拆分成多个子文件
创始人
2024-11-27 22:33:15
0

        在实际的开发过程中,有时会遇到希望提取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相对地址或者文件在服务器上的磁盘路径两种方式     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拆分) | PageOffice 开发者中心

 

相关内容

热门资讯

微信拼三张房卡哪里购买/可以自... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来享受...
微信炸金花房卡链接在哪弄得/微... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡...
win8双系统安卓系统,一机尽... 你有没有想过,在电脑上同时运行Windows 8和安卓系统,那会是怎样一番景象呢?想象一边享受着Wi...
牛牛链接房卡那里有/微信炸金花... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房...
ia实测“可以自建房间的金花房... 道游大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来...
ia实测“微信牛牛链接金花房卡... 新超凡是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡来...
房卡必备教程“炸金花微信建群自... 新神盾是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡来...
塞班系统游戏移植安卓,畅享新体... 你有没有想过,那些曾经陪伴我们度过无数欢乐时光的塞班系统游戏,现在竟然可以在安卓手机上继续畅玩?没错...
微信金花房卡链接如何购买/金花... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
秒懂教程“金花游戏房卡怎么获得... 微信斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来...
一分钟推荐“微信炸金花房间房卡... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡...
秒懂教程“微信怎样开炸金花房间... 随意玩是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享...
金花链接房卡找谁买/微信牛牛房... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡来享...
炸金花房卡链接怎么买/微信斗牛... 微信斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来...
可以开房炸金花微信房卡/购买斗... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来享受...
微信链接斗牛房卡充值购买/牛牛... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
微信炸金花链接怎样弄/微信链接... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡...
一分钟推荐“微信炸金花链接房卡... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡...
有没有玩金花房房卡购买/有没有... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
微信金花房卡找谁拿/牛牛链接房... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...