你正在寻找被称为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