Ссылки, на которые люди нажимают, являются аннотациями в массиве данной страницы / Annots.
У вас есть два варианта:
- Уничтожить весь массив / Annots
- Поиск в массиве / Annots и удаление всех аннотаций ссылок
Простое удаление массива аннотаций очень просто:
PdfDictionary pageDict = reader.getPageN(1); // 1st page is 1
pageDict.remove(PdfName.ANNOTS);
stamper.close();
Проблема в том, что вы можете уничтожать аннотации, которые хотите сохранить вместе с теми, которые вы не делаете.
Решение состоит в том, чтобы искать в массиве annot ссылки на URL-адреса.
PdfDictionary pageDict = reader.getPageN(1);
PdfArray annots = pageDict.getAsArray(PdfName.ANNOTS);
PdfArray newAnnots = new PdfArray();
if (annots != null) {
for (int i = 0; i < annots.size(); ++i) {
PdfDictionary annotDict = annots.getAsDict(i);
if (!PdfName.LINK.equals(annotDict.getAsName(PdfName.SUBTYPE))) {
// annots are actually listed as PdfIndirectReference's.
// Adding the dict directly would be A Bad Thing.
newAnnots.add(annots.get(i));// get the original reference, not the dict
}
}
pageDict.put(PdfName.ANNOTS, newAnnots);
}
Это удалит все аннотации ссылок, а не только те, которые ссылаются на внутренние сайты. Если вам нужно копать глубже, вам нужно проверить PDF Spec , раздел 12.5.6.5 (аннотации ссылок) и раздел 12.6.4.7 (действия URI).