Java 从书签处的PDF中提取文本
我需要在书签所在的位置从PDF中提取文本 PDFBox提取书签所在的整个页面,如前所述Java 从书签处的PDF中提取文本,java,pdf,Java,Pdf,我需要在书签所在的位置从PDF中提取文本 PDFBox提取书签所在的整个页面,如前所述 但是我需要从书签开始提取文本。我相信iText可以处理这个问题 Rectangle2D bookmarkRect = getRectFromBookmark(someBookmarkThingy); FilteredTextRenderListener filter = new FilteredTextRenderListener( new LocationTextExtractionStrategy
但是我需要从书签开始提取文本。我相信iText可以处理这个问题
Rectangle2D bookmarkRect = getRectFromBookmark(someBookmarkThingy);
FilteredTextRenderListener filter =
new FilteredTextRenderListener( new LocationTextExtractionStrategy(),
new RegionTextRenderFilter( bookmarkRect ));
String bookmarkText = PdfTextExtractor.getTextFromPage(reader, pageNum, filter);
someBookmarkThingy
可能是所讨论书签的PDF字典
警告书签实际上可以容纳几乎任何动作。他们通常会进行几种不同的“转到”动作中的一种
GoTo操作可以指定一个矩形、左上角和缩放因子、一个页面以及许多其他变体。任何定义缩放设置的内容都会受到PDF显示窗口大小的影响。其中包括除为新视图显式定义边界框之外的所有视图。你必须对一个典型的窗口大小做一个有根据的猜测,然后从那里进行转换
您可能需要阅读,特别是第12.6.4.2节“转到操作”。嗯。您真正需要的是关于目的地的部分,12.3.2。可通过以下方式定义页面目标:
- [pageRef/XYZ左上缩放]
- [pageRef/Fit]
- [第pageRef页/第五页顶部]
- [pageRef/FitV左]
- [pageRef/Fiter左下右上]
- [第pageRef/FitB页]
- [pageRef/FitBH顶部]
- [pageRef/FitBV左]
玩得开心 别忘了页面底部不一定是Y=0。可能是200到2000年。您只需要检查页面的裁剪框(和旋转!)。