Я просто предупрежу вас заранее, что вы можете быть разочарованы этим. iText на самом деле не предназначен для использования в качестве парсера. Это действительно больше для создания совершенно новых документов PDF, но вы можете попробовать его.
Для начала, используя iText, вы не сможете изменить существующий документ PDF. Что вы можете сделать, тем не менее, это сделать копию с дополнительными функциями, которые вы хотите. (Если кто-то знает лучше, , пожалуйста, , дайте мне знать, это сводит меня с ума.)
Что вы захотите сделать, это создать объект PdfReader из входного потока в вашем исходном файле. Затем создайте объект PdfCopy (который является просто расширенным PdfWriter, который делает получение данных из существующего источника более удобным) для вашего пункта назначения.
Насколько я могу судить, закладки из iText вообще нельзя получить. Может понадобиться другая библиотека. Я думаю, что jpedal может иметь возможность извлекать их (он может получить их в виде XML-документа, который вам, возможно, придется проанализировать, чтобы получить то, что вы хотите.) Однако, если вы получите их, вы можете добавить их в java.util.List, и установите этот список как контур на PDFCopy. Сами закладки - это просто HashMaps с определенным набором ключей. Я не уверен, что все значения, но они включают в себя «Заголовок», «Действие» (который, кажется, где вы могли бы указать, что это именованный пункт назначения, хотя я не знаю, что это будет за значение ) и «URI» (который используется, если это внешняя ссылка - я подозреваю, что это будет указывать имя именованного места назначения, на которое вы ссылаетесь). Опять же, конкретику найти сложно.
Затем переберите страницы читателя, импортируя каждую страницу в PdfCopy. эта страница может вам помочь.
Извините, я вам больше не помог. Удачи.
P.S. Если кто-нибудь еще знает о лучшем инструменте, лицензированном по лицензии (L) GPL или BSD, я бы хотел услышать об этом.