2016-05-22 16 views
0

PdfReader reader = new PdfReader(new FileInputStream(fpath));Android:如何在iText中为单页定义Reader?

我们可以在此类型中定义阅读器。这是针对所有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); 
     }} 
+0

只是为了澄清你的问题:你想提取PDF文档中的特定页面上的所有图像? –

+0

其实我想为PDF中的一个特定页面定义Reader。我可以为你的评论说是。 –

+0

如何通过简单的'int i = 10;'替换'for(int i = 1; i <= reader.getNumberOfPages(); i ++)''? – mkl

回答

1

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

举例来说,如果你想在PdfReader实例限制为10页,您可以使用此行:

reader.selectPages("10"); 

更新

你声称上述方法不回答你的问题。如果那是真的,那么请重新解释你的问题,因为我想不出你的问题的另一种解释。

也许Amedee在他的评论中指出了语言问题,但我认为这个问题与一些关于PDF的误解有关。 PDF文件是一系列对象。这些对象列在交叉引用表中。任何读取PDF的软件都需要从文件末尾开始,以查找拖车字典。这个尾部词典将通过编号引用根词典。查看器将在交叉引用表中查找对象并在目录中查找页面字典。页面字典包含一个树结构:页面树。 PDF阅读器将浏览页面树并为每个页面查找页面字典。页面字典将包含对呈现页面所需的所有资源的引用:内容流,对字体,图像的引用等等。这些对象(页面字典,流,字体字典等)可以在整个文件中找到(在开始,中间和结尾处)。他们没有按照与页面相同的顺序排列。交叉引用表知道每个这些对象的字节偏移量。

如果您知道这一点,您知道任何问题“我想通过隔离特定数量的连续字节只读取PDF的一页”是一个问题,显示对PDF的深刻理解。

+0

这不完全是我的要求。我需要这样做; reader = reader.selectPage(10);例如。但是,谢谢,我也学到了一种方法。 –

+0

如果这不完全是您的要求,请解释您的要求是什么。我了解可能存在语言障碍。如果您给出您实际需要的示例并给出您已写入的代码,它可以提供帮助。代码比外语更容易编写和理解。 –

+0

@AliA你的问题是错误的。我已经更新了我的答案。你为什么问一个错误的问题?通过问一个错误的问题,你试图解决哪个问题? –

相关问题