从书签中提取PDF中的文本

时间:2010-09-23 12:57:48

标签: java pdf

我需要在书签所在的位置从PDF中提取文本。

PDFBox提取书签所在的整个页面,如here所述。

但我需要使用书签提取文字开始

1 个答案:

答案 0 :(得分:0)

我相信iText可以解决这个问题。

Rectangle2D bookmarkRect = getRectFromBookmark(someBookmarkThingy);

FilteredTextRenderListener filter = 
  new FilteredTextRenderListener( new LocationTextExtractionStrategy(), 
                                  new RegionTextRenderFilter( bookmarkRect ));

String bookmarkText = PdfTextExtractor.getTextFromPage(reader, pageNum, filter);

someBookmarkThingy可能是相关书签的PdfDictionary。

警告书签实际上可以保留任何操作。他们通常持有几种GoTo *行动中的一种。

GoTo动作可以指定一个矩形,左上角和左上角。缩放因子,只是一个页面,还有其他一些变种。定义缩放设置的任何内容都将受到中显示PDF的窗口大小的影响。除了明确定义新视图的边界框之外,其中包括所有这些内容。你必须对一个典型的窗口大小进行有根据的猜测,然后从那里进行转换。

您可能需要阅读PDF Specification,特别是第12.6.4.2节“Go-To操作”。哼。你真正需要的是关于目的地的部分,12.3.2。因此可以定义页面目的地:

  • [pageRef / XYZ left top zoom]
  • [pageRef / Fit]
  • [pageRef / FitH top]
  • [pageRef / FitV left]
  • [pageRef / FitR左下方右下方]
  • [pageRef / FitB]
  • [pageRef / FitBH top]
  • [pageRef / FitBV left]

玩得开心!