你正在尋找被稱爲QuadPoints ;-)
允許我解釋如何QuadPoints由您展示AddPolygonLink示例中使用的祕密成分。
你已經發現瞭如何構建和繪製路徑,例如:
canvas.moveTo(36, 700);
canvas.lineTo(72, 760);
canvas.lineTo(144, 720);
canvas.lineTo(72, 730);
canvas.closePathStroke();
我只使用此代碼段以顯示不規則的形狀,我們會讓點擊。
你已經知道如何創建一個矩形形狀的可點擊的鏈接:
Rectangle linkLocation = new Rectangle(36, 700, 144, 760);
PdfDestination destination = new PdfDestination(PdfDestination.FIT);
PdfAnnotation link = PdfAnnotation.createLink(stamper.getWriter(),
linkLocation, PdfAnnotation.HIGHLIGHT_INVERT,
1, destination);
與此對應的代碼片段你已經在你的問題中。
現在讓我們引入一些QuadPoints:
PdfArray array = new PdfArray(new int[]{72, 730, 144, 720, 72, 760, 36, 700});
link.put(PdfName.QUADPOINTS, array);
根據ISO-32000-1,QuadPoints有:
8×n個數指定n個四邊形 的默認座標的數組用戶空間包括鏈接應該被激活的區域。 每個四邊形的座標的順序
x1 y1 x2 y2 x3 y3 x4 y4
指定在逆時針順序四邊形的四個頂點中給出。 出於定位的目的,如應用下劃線邊框樣式, 四邊形的底部是由(x1, y1)
和(x2, y2)
組成的線。
如果此條目不存在或符合條件的讀者不承認它, 應使用由Rect
條目指定的區域。如果數組中的任何座標位於Rect
指定的區域之外,則QuadPoints
應忽略 。
請注意,我定義了linkLocation
參數,使不規則形狀適合該矩形。
警告:你可以通過測試此例嘗試此功能:link_polygon.pdf,但要注意的是,雖然這將查看在Adobe Reader文件時工作,這可能與未實施QuadPoints
劣質PDF查看器工作功能。
謝謝,我不知道它叫什麼是我的絆腳石 – Ksliman 2014-11-26 16:25:36