#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. Поля