在iText中添加地图Java

问题描述:

我正在使用java和iText创建pdf。是否可以添加带有指针的地图,以便用户知道起点的位置?在iText中添加地图Java

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

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

+0

请说明。你的意思是“带指针的地图,用户知道起点的位置”?如果您的PDF中有地图,则可以添加一个看起来像箭头的注释。那是你在找什么? – 2014-11-05 08:34:46

+0

*我可以添加在iText谷歌地图从网站,而不是一个图像* - 如何?请不要只说你**不要**,而是你**做的**。 – mkl 2014-11-06 09:21:28

既然你没有回答我的反问题在评论中添加,我提供给你两个例子。如果这些不是你要找的东西,你真的应该澄清你的问题。

实施例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(); 

如果我们知道指针的坐标,我们可以绘制线条和曲线,从而得到此处显示的红色指针(请参阅剑桥创新中心附近的红色指针):

enter image description here

实施例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); 

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

enter image description here

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

enter image description here

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