Что вы имеете в виду под «картой с указателем, чтобы пользователь знал, где находится изначальная точка»? Если в PDF-файле есть карта, можно добавить аннотацию в виде стрелки. Вам нужно именно это?
Приведу два примера.
Пример 1: добавление настраиваемой формы в качестве дополнительного содержимого поверх карты
Этот вариант продемонстрирован в примере AddPointer:
PdfCanvas canvas = new PdfCanvas(pdfDoc.getFirstPage());
canvas.setStrokeColor(Color.RED)
.setLineWidth(3)
.moveTo(220, 330)
.lineTo(240, 370)
.arc(200, 350, 240, 390, 0, (float) 180)
.lineTo(220, 330)
.closePathStroke()
.setFillColor(Color.RED)
.circle(220, 370, 10)
.fill();
Если известны координаты, то можно нарисовать из линий и кривых красный указатель, как на картинке ниже (красный указатель возле Cambridge Innovation Center):
Карта с указателем
Пример 2: добавление строковой аннотации поверх карты
Этот вариант продемонстрирован в примере AddPointerAnnotation:
Rectangle rect = new Rectangle(220, 350, 255, 245);
PdfLineAnnotation lineAnnotation = new PdfLineAnnotation(rect, new float[]{225, 355, 470, 590});
lineAnnotation.setTitle(new PdfString("You are here:"));
lineAnnotation.setContents("Cambridge Innovation Center");
lineAnnotation.setColor(Color.RED);
lineAnnotation.setFlag(PdfAnnotation.PRINT);
PdfDictionary borderStyle = new PdfDictionary();
borderStyle.put(PdfName.S, PdfName.S);
borderStyle.put(PdfName.W, new PdfNumber(5));
lineAnnotation.setBorderStyle(borderStyle);
PdfArray le = new PdfArray();
le.add(new PdfName("OpenArrow"));
le.add(new PdfName("None"));
lineAnnotation.put(new PdfName("LE"), le);
lineAnnotation.put(new PdfName("IT"), new PdfName("LineArrow"));
pdfDoc.getFirstPage().addAnnotation(lineAnnotation);
В результате получается аннотация (она является частью не настоящего содержимого, а интерактивного слоя, накладываемого поверх настоящего содержимого):
Карта с аннотацией
Слой интерактивный: когда пользователь нажимает на аннотацию, появляется дополнительная информация:
Карта с открытой аннотацией