【问题标题】:Adding maps at iText Java在 iText Java 中添加地图
【发布时间】:2014-11-05 08:32:10
【问题描述】:

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

澄清来自 OP 同时删除的答案,应该是对问题的编辑

我的问题是我可以从网络上添加 iText 谷歌地图而不是图像

【问题讨论】:

  • 请澄清。您所说的“带有指针的地图,以便用户知道起点在哪里”是什么意思?如果您的 PDF 中有地图,您可以添加一个看起来像箭头的注释。这就是你要找的吗?
  • 我可以从网络上添加 iText 谷歌地图而不是作为图像 - 还有其他方法吗?请不要只说你想要什么,而要说你想要想要什么。

标签: java google-maps pdf itext


【解决方案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);

结果是一个注释(它不是真实内容的一部分,而是真实内容之上的交互层的一部分):

在用户点击注释时显示额外信息的意义上,它是交互式的:

许多其他选项是可能的,但再次强调:您的问题并不完全清楚。

【讨论】:

    猜你喜欢
    • 2014-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    • 2022-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多