Aspose.slides记录(三)
来源:互联网 发布:网站的优化 编辑:程序博客网 时间:2024/06/01 15:01
Smartart
- smartart是office中一个比较特殊的插入样式,该样式数据在openxml里存储在[word|xl|ppt]/diagrams/data([0-9]+).xml中,在word/excel中需采取代码解压后读取xml的方式读取信息,在aspose.slides中有相应的类可直接处理.
- smartart节点为多层(级)节点,节点之间按父子节点作为节点关系;本文使用递归的方式读取子节点
- 节点的位置信息可以通过node.getPosition()方法获取,本文不同级的节点用”,”隔开后拼接为字符串存储,将文本及位置信息存放在数据库后,外部修改文本后可保证写回数据时的位置关系一一对应
if(shape instanceof SmartArt){ SmartArt smartArt = (SmartArt) shape; for (ISmartArtNode node : smartArt.getNodes()){ int postion = 0; //段落 paras = node.getTextFrame().getParagraphs(); int len = paras.getCount(); for (int paraNum = 0; paraNum < len; paraNum++) { portions = paras.get_Item(paraNum).getPortions(); readStyle(portions); postion = node.getPosition(); String postionNum = String.valueOf(postion) ; } // 获取子节点 String parentPostion = String.valueOf(postion++); readSmartArtChildNode(node, parentPostion); } }
读取子节点
private void readSmartArtChildNode(ISmartArtNode node,String parentPostion) { if (node.getChildNodes() != null) { ISmartArtNodeCollection childNodes = node.getChildNodes(); int index = 0; for (ISmartArtNode childNode : childNodes) { //记录位置信息 String postionNum = parentPostion +","+ String.valueOf(index)+","; IParagraphCollection paras = childNode.getTextFrame().getParagraphs(); int len = paras.getCount(); for (int paraNum = 0; paraNum < len; paraNum++) { IPortionCollection portions = paras.get_Item(paraNum).getPortions(); readStyle(portions); } ++index; readSmartArtChildNode(childNode, postionNum); } } }
阅读全文
1 0
- Aspose.slides记录(三)
- Aspose.slides记录(一)
- Aspose.slides记录(二)
- Aspose.slides记录(四)
- Aspose.slides记录(五)
- aspose.slides添加文本框代码反编译
- ppt 在线预览类库:Aspose.Slides.dll
- 【版本更新】Aspose.Slides V17.10发布 | 支持免费下载
- 【更新】PPT管理控件Aspose.Slides V17.5发布 | 附下载
- PPT控件Aspose.Slides V17.7发布 | 支持在文本框中添加列
- PPT组件Aspose.Slides V17.8发布 | 支持PP2010 PPTX与嵌入式视频
- PPT组件Aspose.Slides V17.9发布 | 改进导出HTML性能
- Aspose
- aspose
- Aspose.Slides 12月新版17.12发布 | 修复了17.7版tomcat 8.0.21无法启动的bug
- C# Aspose.Word 操作word文档【三】
- Aspose.Words使用教程之插入文档元素(三)
- Lecture Slides
- Webservice 之eclipse 创建axis1.4项目
- 归并排序
- opencv学习(一)
- Spring 整合之 Ehcache
- Pyhton运算符与表达式
- Aspose.slides记录(三)
- Java 性能优化系列之3.1[JVM调优]
- RateLimiter限流
- [美团 CodeM 复赛]城市网络
- nginx 在windows中的安装和配置
- 单例模式 代码
- 从零开始学java(五)运算符
- nodejs-express+app.use的用法
- 内部类