在iText的Java的添加地图(Adding maps at iText Java)

2019-10-21 05:19发布

我使用Java和iText的创建PDF。 是否有可能增加一个地图上有一个指针,这样用户就会知道其中的出发点是什么?

澄清从由OP一个同时删除了答案,应该是这个问题的编辑

我的问题是,我可以在iText的谷歌地图添加来自网络,而不是作为一个图像

Answer 1:

既然你没有回答在评论中加入我的反问,我提供两个例子。 如果这些是你正在寻找没有什么,你真的应该澄清你的问题。

实施例1:添加自定义形状上的地图的顶部额外内容

这表现在AddPointer例如:

PdfContentByte canvas = writer.getDirectContent();
canvas.setColorStroke(BaseColor.RED);
canvas.setLineWidth(3);
canvas.moveTo(220, 330);
canvas.lineTo(240, 370);
canvas.arc(200, 350, 240, 390, 0, (float) 180);
canvas.lineTo(220, 330);
canvas.closePathStroke();
canvas.setColorFill(BaseColor.RED);
canvas.circle(220, 370, 10);
canvas.fill();

如果我们知道指针的坐标,我们可以得出导致这里显示一个红色指针直线和曲线(见附近的剑桥创新中心的红色图钉):

实施例2:添加在地图上的顶部的线注释

这表现在AddPointerAnnotation例如:

Rectangle rect = new Rectangle(220, 350, 475, 595);
PdfAnnotation annotation = PdfAnnotation.createLine(writer, rect, "Cambridge Innovation Center", 225, 355, 470, 590);
PdfArray le = new PdfArray();
le.add(new PdfName("OpenArrow"));
le.add(new PdfName("None"));
annotation.setTitle("You are here:");
annotation.setColor(BaseColor.RED);
annotation.setFlags(PdfAnnotation.FLAGS_PRINT);
annotation.setBorderStyle(
    new PdfBorderDictionary(5, PdfBorderDictionary.STYLE_SOLID));
annotation.put(new PdfName("LE"), le);
annotation.put(new PdfName("IT"), new PdfName("LineArrow"));
writer.addAnnotation(annotation);

其结果是一个注释(这是不实际的内容的一部分,但对实际内容的顶部的交互式层的一部分):

正是在这个意义上是互动的,当用户点击注释额外的信息显示:

许多其他的选择是可能的,但再次:你的问题是不完全清楚。



文章来源: Adding maps at iText Java