Itext PDF 5.5 перейти к экземпляру текста после нажатия на ссылку - PullRequest
0 голосов
/ 27 августа 2018

Есть ли способ иметь ссылку для многократного щелчка здесь внизу PDF-файла и, щелкнув по этой ссылке, перейти к соответствующим разделам в том же PDF-файле.

Нажмите здесь, чтобы перейти к разделу 1 - Text1 Нажмитездесь, чтобы перейти к Разделу 2 - Текст 2

После щелчка эти пользователи должны перейти к тексту 1 и тексту 2 соответственно, который находится в одном и том же PDF

В моем случае у меня есть продукты, перечисленные в категории мудро вмой PDF.Ниже пользователь может просматривать выбранные продукты.При просмотре выбранных товаров, если пользователь нажимает на определенный товар, он должен переместиться к этому разделу в том же PDF-файле.Любая помощь в реализации этой логики высоко ценится

1 Ответ

0 голосов
/ 27 августа 2018

Это работает для меня:

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

...