2016-08-05 54 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