Найти существующее поле кнопки в документе PDF с помощью iText

#java #pdf #itext #acrobat #pdf-form

#java #PDF #itext #acrobat #pdf-форма

Вопрос:

Я использую библиотеку Java iText для управления полями формы в документе PDF и столкнулся с простой проблемой. Я могу установить свойства AcroFields, которые я извлек из объекта PdfStamper, однако то, что я действительно хочу сделать, это установить действие для существующего поля кнопки.

Я нашел бесчисленное множество примеров создания нового поля кнопки и добавления его в документ, однако ни один из них фактически не извлекает существующий объект PushbuttonField. Я уверен, что это правильный объект, потому что у него есть метод setAction, которого нет у объекта AcroField.

Я готов согласиться с тем, что это невозможно, потому что я мог бы обойти это, используя Acrobat для удаления кнопки из шаблона, а затем программно добавляя ее каждый раз заново.

Кроме того, я хотел бы знать, знает ли кто-нибудь о более полном расположении документации по iText. Неполные javadocs и конкретные примеры кода не создают наилучшую документацию.

Ответ №1:

Вам нужно знать имя поля кнопки, чтобы получить его. Взгляните на пример, чтобы увидеть, как извлекать, настраивать и заменять.

Вы можете задавать действия, если у вас есть поле кнопки#getField()#setAction()

Комментарии:

1. Потребовалось 5 минут, чтобы разобраться с приведенным выше неполным javadocs и конкретными примерами кода

2. Вау… как я это пропустил?! Я просто собираюсь стиснуть зубы и купить руководство iText in Action. Я ужасен в поиске бесплатной документации для iText.

3. Вы также можете добавить PdfAction, используя низкоуровневый PdfDictionary.put() метод. Но для этого вам нужно довольно хорошо знать спецификацию Pdf.

4. Получите имена всех полей в pdf из PdfStamper.AcroFields. Поля