Android:如何在iText中为One Page定义Reader

时间:2016-05-22 09:05:38

标签: android image pdf itext reader

PdfReader reader = new PdfReader(new FileInputStream(fpath));

我们可以在此类型中定义阅读器。这适用于所有PDF文件。我只需要为一页定义这个阅读器。例如,仅适用于PDF文件的10页。

我们可以逐页阅读以获取文字,但我需要这样做以获取图像。

TextExtractionStrategy strategy;
        StringBuilder sb = new StringBuilder();


   for (int i = 1; i <= reader.getNumberOfPages(); i++) {
            strategy = parser.processContent(i, new SimpleTextExtractionStrategy());
           strW.write(strategy.getResultantText());

            sb.append(strW.toString);
        }}

1 个答案:

答案 0 :(得分:1)

请参阅官方文档并搜索selectPagesselectPages()方法会将PdfReader实例缩减为您选择中列出的网页。

例如,如果要将PdfReader实例限制为第10页,可以使用以下行:

reader.selectPages("10");

<强>更新

您声称上述内容并未回答您的问题。如果这是真的,那么请重新提出你的问题,因为我无法想到你问题的另一种解释。

Amedee在评论中表示可能存在语言问题,但我认为这个问题与对PDF的一些误解有关。 PDF文件是一系列对象。这些对象列在交叉引用表中。任何读取PDF的软件都需要从文件末尾开始,它将找到预告片字典。这个预告片字典将按编号引用根字典。查看器将在交叉引用表中查找对象,并在目录中查找页面字典。 pages字典包含树结构:页面树。 PDF阅读器将在页面树中移动并查找每个页面的页面字典。页面字典将包含对呈现页面所需的所有资源的引用:内容流,对字体的引用,图像等。这些对象(页面字典,流,字体字典等)可以在整个文件中找到(在开头,中间,结尾)。它们的排序顺序与页面顺序不同。交叉引用表知道每个对象的字节偏移量。

如果你知道这一点,你知道任何问题&#34;我想通过隔离特定数量的连续字节来只读取PDF的一页。这个问题表明人们对PDF的理解非常缺乏。