Android:我如何为 iText 中的一页定义 Reader

Android: How can i define Reader only for One Page in iText

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

我们可以在这个 type.This 中定义 reader 用于所有 PDF 文件。我只需要为一页定义此 reader。例如,仅 10 页的 PDF 文件。

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

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);
}

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

例如,如果您想将 PdfReader 实例限制为第 10 页,您可以使用此行:

reader.selectPages("10");

更新

您声称以上内容没有回答您的问题。如果那是真的,那么请重新表述你的问题,因为我想不出对你的问题的另一种解释。

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

如果你知道这一点,你就会知道任何问 "I want to read only one page of a PDF by isolating a specific number of continuous bytes" 的问题都表明对 PDF 的理解非常缺乏。