仅使用PDF Clown的pdf文档中的重点获取位置

时间:2016-08-05 09:33:53

标签: java annotations pdfclown

我使用方法" Annotation.getBox"从PDF小丑库获取文本中的亮点位置。通过这种方式,还可以检索螺栓或斜体文本的位置。如何避免这种情况?我想从真正的亮点中获得Retancle2D。

1 个答案:

答案 0 :(得分:0)

不幸的是,OP无法共享示例PDF。他还只提供了一个非常小的代码片段。因此,以下只能推测...

OP在评论中提供的代码片段如下所示:

PageAnnotations annotations = page.getAnnotations();
for (Annotation annotation : annotations)
{
    highlightArea = annotation.getBox();
}

因此,他将变量highlightArea设置为给定页面注释的最后一个元素的Box值。

highlightArea可能包含其他内容的可能原因(有时在OP案例中包含粗体或斜体文字)而不是突出显示的文字:

  • 最终的注释可能不是一个高亮注释,而是一些其他类型。
  • 假设最终注释是高亮注释,并非其框的所有内容都显示为突出显示,而只是 QuadPoints 注释字典条目中的四边形或由外观流定义的一些自定义区域注释。

对于后一种情况,在PDF规范中授予第12.5.6.10节“文本标记注释”:

  

QuadPoints array (必需)一个8× n 数字的数组,用于指定 n 四边形的坐标默认用户空间。每个四边形应包含注释背后的文本中的一个或一组连续单词。每个四边形的坐标应按顺序

给出      

x 1 y 1 x 2 y 2 x 3 y 3 < em> x 4 y 4

     

以逆时针顺序指定四边形的四个顶点   (见图64)。文本应相对于边缘定向   连接点( x 1 y 1 )和( x 2 y 2 )。

     

注释词典的 AP 条目(如果存在)应优先   在 QuadPoints ;见表168和12.5.5,“Appearance Streams。”

请注意,Adobe Reader不会按指定顺序排列顶点,而且它还无法正确显示指定顺序中带坐标的高光。授予stackoverflow Q&amp; A "PDF Spec vs Acrobat creation (QuadPoints)",它虽旧但仍适用于当前的Adobe Acrobat版本。

如果您的annotationTextMarkup的实例,则可以使用TextMarkup方法getMarkupBoxes轻松检索四边形。

此外,您可以使用Annotation方法getAppearance检索外观流。但是,确定外观流突出显示的区域可能并非易事。