Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从书签处的PDF中提取文本_Java_Pdf - Fatal编程技术网

Java 从书签处的PDF中提取文本

Java 从书签处的PDF中提取文本,java,pdf,Java,Pdf,我需要在书签所在的位置从PDF中提取文本 PDFBox提取书签所在的整个页面,如前所述 但是我需要从书签开始提取文本。我相信iText可以处理这个问题 Rectangle2D bookmarkRect = getRectFromBookmark(someBookmarkThingy); FilteredTextRenderListener filter = new FilteredTextRenderListener( new LocationTextExtractionStrategy

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

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


但是我需要从书签开始提取文本。

我相信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年。您只需要检查页面的裁剪框(和旋转!)。