如何知道的图像或画面的位置,而使用Apache POI在Java解析MS Word文档 [英] How to know the Image or Picture Location while parsing MS Word Doc in java using apache poi

查看:307
本文介绍了如何知道的图像或画面的位置,而使用Apache POI在Java解析MS Word文档的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

HWPFDocument wordDoc =新HWPFDocument(新的FileInputStream(文件名));

HWPFDocument wordDoc = new HWPFDocument(new FileInputStream(fileName));

列表picturesList = wordDoc.getPicturesTable()getAllPictures();

List picturesList = wordDoc.getPicturesTable().getAllPictures();

上面的语句给出了一个文档中的所有图片的列表。我想知道,之后在doc文/位置的图像将位于?

The above statement gives the list of all pictures inside a document. I want to know after which text/position in the doc the image will be located at?

推荐答案

你得到这些照片的错误的方式,这就是为什么你没有找到任何职位!

You're getting at the pictures the wrong way, which is why you're not finding any positions!

您需要做的是过程中的每个 CharacterRun 依次文件。传递到 PicturesTable ,并检查是否性格运行在一个图片。如果是的话,取回来从表中的图片,你知道在文档中属于它的地方,你必须从

What you need to do is process each CharacterRun of the document in turn. Pass that to the PicturesTable, and check if the character run has a picture in. If it does, fetch back the picture from the table, and you know where in the document it belongs as you have the run it comes from

在最简单的,它会是这样的:

At the simplest, it'd be something like:

PicturesTable pictureTable = document.getPicturesTable();
Range r = document.getRange();
for(int i=0; i<r.numParagraphs(); i++) {
    Paragraph p = r.getParagraph(i);
    for(int j=0; j<p.numCharacterRuns(); j++) {
      CharacterRun cr = p.getCharacterRun(j);
      if (pictureTable.hasPicture(cr)) {
         Picture picture = pictures.getFor(cr);
         // Do something useful with the picture
      }
    }
}

您可以找到在<一个这样做的一个很好的例子href=\"https://svn.apache.org/repos/asf/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/WordExtractor.java\"相对=nofollow>阿帕奇提卡解析器为Microsoft Word的.doc 的,这是由Apache的POI供电

You can find a good example of doing this in the Apache Tika parser for Microsoft Word .doc, which is powered by Apache POI

这篇关于如何知道的图像或画面的位置,而使用Apache POI在Java解析MS Word文档的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆