2016-08-05 52 views
-1

我使用PDF Clown库中的方法“Annotation.getBox”来获取文本中精彩部分的位置。通过这种方式还可以检索到螺栓或斜体文本的位置。这怎么可以避免?我想从真正的亮点中获得Retancle2D。从pdf文档的精彩部分获取位置,使用PDF Clown

+0

请分享一些关键代码,让我们了解您的工作。请链接到我们可以重现问题的PDF样本。 – mkl

+0

PageAnnotations annotations = page.getAnnotations(); \t \t \t的(译注注解:注解){ \t \t \t \t highlightArea = annotation.getBox();} ......我得到页的注释在PDF格式,并采取有位置,但我得到有时也位置粗体或斜体文字。 对不起,我不能链接样本pdf,因为它是机密文件。 – godani

+0

然后尝试找到允许重现问题的另一个非机密文件。如果你找不到,可能是你的pdf本身存在问题。 – mkl

回答

0

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

由OP在评论中提供的代码片段看起来是这样的:

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

因此,他把变量highlightArea到最终的Box值给定页面的注释元素。

可能的原因highlightArea可能包含其他内容(在OP的情况下,有时会出现一些粗体或斜体文字)较突出显示的文本:

  • 那场决赛注释可能不是高亮注释完全,但一些其他类型。
  • 假设最终注释是突出显示注释,则其框中的所有内容都不会突出显示,而只会显示注释词典条目中的四边形或由注释的外观流定义的一些自定义区域。

对于后一种情况在PDF说明书胙部12.5.6.10 “文本标记集注”:

QuadPoints阵列(必需)Ñ号码的一个数组,指定默认用户空间中的坐标为n四边形。每个四边形都应在注解背后的文本中包含一个或一组连续的单词。每个四边形的坐标须在该命令

XýXýXý 3给出xý

在逆时针顺序 (参见图64)指定所述四边形的四个顶点。该文本应相对于被定向到边缘 连接点(Xÿ )和(Xÿ )。

注释词典的AP项,如果存在的话,应优先 超过QuadPoints;请参阅表168和12.5.5,“外观流。”

小心,但是,作为指定的Adobe Reader不订购顶点,而且还为指定的不正确显示在顺序坐标亮点。赋予旧的但仍适用于当前Adobe Acrobat版本的计算器Q & A "PDF Spec vs Acrobat creation (QuadPoints)"


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

此外,您可以使用Annotation方法getAppearance检索外观流。不过,确定外观流所突出显示的区域可能不是微不足道的。

+0

谢谢你的回复。对不起,我无法在其他文件中重现问题。我想,这个问题实际上在我的pdf文件上。 – godani