Как получить гиперссылки в pdf документе
Я работаю с библиотекой IText7. Мне нужно получить все гиперссылки pdf документа. В интернете я не нашел примера, как это можно сделать. Возможно кто-нибудь знает форум по IText7 или подскажет, как это сделать. Буду благодарен за любую информацию. Спасибо
Ответы (1 шт):
Автор решения: Komdosh
→ Ссылка
Сам не проверял, но по документации надо взять аннотации с PdfPage и затем проверить, что subtype аннотации PdfName.Link.
String src = "test-with-links.pdf";
String dest = "test-no-links.pdf";
PdfReader reader = new PdfReader(src);
PdfWriter writer = new PdfWriter(dest);
PdfDocument pdfDoc = new PdfDocument(reader,writer);
for( int page = 1; page <= pdfDoc.getNumberOfPages(); ++page ) {
PdfPage pdfPage = pdfDoc.getPage(page);
List<PdfAnnotation> annots = pdfPage.getAnnotations();
if ((annots == null) || (annots.size() == 0)) {
System.out.println("no annotations on page " + page);
}
else {
for( PdfAnnotation annot : annots ) {
// if this annotation has a link, delete it
if ( annot.getSubtype().equals(PdfName.Link) ) {
PdfDictionary annotAction = ((PdfLinkAnnotation)annot).getAction();
if( annotAction.get(PdfName.S).equals(PdfName.URI) ||
annotAction.get(PdfName.S).equals(PdfName.GoToR) ) {
PdfString uri = annotAction.getAsString(PdfName.URI);
System.out.println("URI: " + uri.toString());
}
}
}
}
}
pdfDoc.close();