Это работает для меня:
public void createPdf(String dest) throws IOException {
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
Document document = new Document(pdf);
document.add(
new Paragraph("Where's Waldo?")
.setAction(PdfAction.createGoTo("Waldo")));
document.add(new AreaBreak(AreaBreakType.NEXT_PAGE));
document.add(
new Paragraph("Here's Waldo!")
.setDestination("Waldo"));
document.close();
}
На первой странице у меня есть текст "Where's Waldo?"
.Я добавляю аннотацию ссылки к этому тексту с помощью действия GoTo, используя метод setAction()
и createGoTo()
.Я использую String
"Waldo"
в качестве имени пункта назначения.
На следующей странице я добавляю текст "Here's Waldo!"
, и я определяю этот текст как пункт назначения действия GoTo со ссылкой на имя"Waldo"
с помощью метода setDestination()
.
Теперь, когда я нажимаю "Where's Waldo?"
на первой странице, зритель переходит к тексту "Here's Waldo!"
на второй странице.
Важно, если вы все еще используете iText 5:
Для фрагмента в этом ответе требуется iText 7. Если вам нужно решение iText 5, имейте в виду, что iText 5 больше не поддерживается.Код для iText 5 отличается, но принцип аналогичен: вы определяете два Chunk
объекта.Вы используете метод setLocalGoto()
для одного Chunk
и метод setLocalDestination()
для другого.См http://itextsupport.com/apidocs/iText5/latest/com/itextpdf/text/Chunk.html