利用POI获取.DOCX文件中图和表的题注
来源:互联网 发布:淘宝加盟开店被骗了 编辑:程序博客网 时间:2024/05/22 01:58
POI提供了对应的API可以方便我们找到DOCX文件中的图片和表格。 但是想要找到这些表格和图片对应的题注却花了我一番心思。
拿图片为例。
XWPFDocument xwpfDoc = new XWPFDocument(new InputStream(in));//文档的样式列表XWPFStyles xwpfStyleMap = xwpfDoc.getStyles();//文档的元素Iterator<IBodyElement> elementIter = xwpfDoc.getBodyElementsIterator();
图片和图片的注释存储在XWPFParagraph类型的IBodyElement中。那么只要确定哪些XWPFParagraph中有图片,哪些XWPFParagraph中包含Caption(题注)信息,利用XWPFParagraph间的位置关系就可以将题注和图片关联起来。
1. 确定图片:
for (XWPFRun run : xwpfParagraph.getRuns()) {if (run.getEmbeddedPictures() != null && run.getEmbeddedPictures().size() != 0) {hasPic = true;}}
通过对XWPFParagraph内每个run调用getEmbeddedPictures()方法即可判断及获得该XWPFParagraph内的图片。但有一个问题是:该方法只能获得诸如.jpg .png这样格式的图片,诸如.emf或者是直接插入的UML识别不了。而使用xwpfDoc.getAllPictures()方法却可以获得上述提到的格式图片,但是无法得到图片的位置信息.....这个我一直没办法解决,也望高人相助.....
2. 确定caption
// 该XWPFParagraph的样式String paragraphStyle = xwpfParagraph.getStyle();//从文档的样式列表中获得这一段的具体样式名称if (paragraphStyle != null) {XWPFStyle xwpfStyle = xwpfStyleMap.getStyle(paragraphStyle);styleType = xwpfStyle.getName();}
根据styleType便可以判断出每段文本的类型。 一般图和表的题注的StyleType名称是“caption”。
这里我最初仅仅通过paragraphStyle这个String来判断各个文本的类型。 发现该变量只是文档类型的一个代号,在不同文档中这个变量的值也不同,所以行不通。 而上述提到的方法,即利用该变量从文档的样式列表中找到真正的文档类型就没问题了,在大量文件的测试中都可以准确定位到caption信息。
0 0
- 利用POI获取.DOCX文件中图和表的题注
- 利用POI提取Word(.docx)文件的批注内容
- POI操作word2007(docx)文件的文本和图片
- poi创建和保存docx文件
- POI读取.doc 和.docx的区别
- java使用poi读取doc和docx文件
- POI读写Word docx文件
- POI读写Word docx文件
- POI读写Word docx文件
- 使用POI读写word docx文件
- 使用POI读写word docx文件
- Java poi 替换 word docx文件
- 使用POI读写word docx文件
- 使用POI读写word docx文件
- 使用POI读写word docx文件
- 利用正则表达式提取docx转为txt的文件。
- 利用POI导入和导出excel文件
- Java:封装POI实现word的docx文件的简单模板功能
- 全面了解Ant
- torque pbs_4.2.4.1安装过程
- 华为OJ_1956_合并表记录
- PHP 获取当前页面的完整 url 函数
- android中颜色的定义
- 利用POI获取.DOCX文件中图和表的题注
- UI自动化测试系列之TestNg-TestNg数据驱动二------>以XML外部文件作为数据驱动(1)
- MFC---系统托盘
- STL,ATL,WTL之间的联系和区别
- android4.4 短信模版未限制输入字数
- linux c++有序遍历目录
- myeclipse 装spket插件图解版
- 利用CoreGraphics.framework框架 自己画圆
- 给驴的