Для создания обходного пути я хотел бы знать, возможно ли отправить / отменить отправку PD(Push)Button с помощью pdfbox 2.0.12 или более поздней версии.
PDButton pdButton = (PDButton) field;
pdButton.setValue("pushed");
Есть ли определенное значение, которое можно использовать для нажатия/отжимания кнопки?
Я знаю, что эту проблему лучше решить с помощью PDCheckBox, но, поскольку в большинстве наших PDF-шаблонов для отображения флажков используются кнопки, а не флажки, я хотел бы упростить миграцию этих файлов.
Обновление 1
Как было предложено в комментариях, я попытался установить кнопку на единицу, но это приводит к IllegalStateException.
Код
PDButton btn = (PDButton) field;
btn.setValue("1");
Исключение
Caused by: java.lang.IllegalStateException
at org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceEntry.getSubDictionary(PDAppearanceEntry.java:97)
at org.apache.pdfbox.pdmodel.interactive.form.PDButton.getOnValueForWidget(PDButton.java:348)
at org.apache.pdfbox.pdmodel.interactive.form.PDButton.getOnValues(PDButton.java:319)
at org.apache.pdfbox.pdmodel.interactive.form.PDButton.checkValue(PDButton.java:370)
at org.apache.pdfbox.pdmodel.interactive.form.PDButton.setValue(PDButton.java:157)
Обновление 2
Невозможно. Только флажки могут быть отмечены/сняты. Мы исправим наши шаблоны PDF.
@TilmanHausherr спасибо за быстрый ответ! Я обновил вопрос на основе ваших отзывов, и он создает исключение. Я использовал правильное значение? Также я не понимаю, о какой таблице вы говорите.
Это было из спецификации PDF ( adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf ). Один для флага кнопки, а не для значения. Я хотел сказать "ты не можешь". Если ваш файл позволяет что-то подобное, то либо это не кнопка, либо это какое-то волшебство с javascript.
Я согласен, что это странно и не так, как должно быть. Мы закончили тем, что полностью удалили рендеринг флажка и будем запрашивать правильные флажки для тех случаев, когда флажок должен быть снят.




«Поле кнопки должно иметь тип поля Btn и флаг кнопки (см. Таблицу 226), установленный в единицу. Поскольку этот тип кнопки не сохраняет постоянного значения, он не должен использовать записи V и DV в словаре поля»