首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓:如何在iText中仅为一个页面定义阅读器

安卓:如何在iText中仅为一个页面定义阅读器
EN

Stack Overflow用户
提问于 2016-05-22 17:05:38
回答 1查看 131关注 0票数 0
代码语言:javascript
复制
PdfReader reader = new PdfReader(new FileInputStream(fpath));

我们可以定义阅读器在这个type.This是为所有的PDF文件。我只需要为一个页面定义这个阅读器。例如,只需10。页的PDF文件。

我们可以一页一页地阅读来获得文本,但我需要这样做才能获得图像。

代码语言:javascript
复制
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);
}
EN

回答 1

Stack Overflow用户

发布于 2016-05-22 19:20:52

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

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

代码语言:javascript
复制
reader.selectPages("10");

更新

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

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

如果你知道这一点,你就会知道任何询问“我想通过分离特定数量的连续字节来只读PDF的一页”的问题都是一个揭示了对PDF严重缺乏理解的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37372420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档