PdfReader reader = new PdfReader(new FileInputStream(fpath));
我们可以将阅读器定义为这种类型。这适用于所有PDF文件。我只需要为一页定义这个阅读器。例如,仅适用于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);
}
请参阅官方文档并搜索selectPages。selectPages()
方法将PdfReader
实例缩减为所选内容中列出的页面。
例如,如果您想将PdfReader
实例限制在第10页,可以使用以下行:
reader.selectPages("10");
更新
你声称以上内容并不能回答你的问题。如果这是真的,那么请重新表述你的问题,因为我想不出对你的问题有其他解释。
也许正如Amedee在评论中指出的那样,存在语言问题,但我认为这个问题与对PDF的一些误解有关。PDF文件是一系列对象。这些对象列在交叉引用表中。任何读取PDF的软件都需要从文件的末尾开始,在那里它可以找到尾部词典。这个词尾词典将按数字引用根词典。查看器将在交叉引用表中查找对象,并在目录中查找页面字典。页面字典包含一个树结构:页面树。PDF阅读器将在页面树中移动,并为每个页面找到一个页面词典。页面词典将包含对呈现页面所需的所有资源的引用:内容流、对字体、图像等的引用。这些对象(页面词典、流、字体词典等)可以在整个文件中找到(在开始、中间、结尾)。它们的顺序与页面的顺序不同。交叉引用表知道每个对象的字节偏移量。
如果你知道这一点,你就会知道,任何问"我想通过隔离特定数量的连续字节来只阅读PDF的一页"的问题都表明我对PDF缺乏理解。