PDFBox - Как нажать/отпустить кнопку PD(Push)

Для создания обходного пути я хотел бы знать, возможно ли отправить / отменить отправку 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.

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

Tilman Hausherr 21.01.2019 12:54

@TilmanHausherr спасибо за быстрый ответ! Я обновил вопрос на основе ваших отзывов, и он создает исключение. Я использовал правильное значение? Также я не понимаю, о какой таблице вы говорите.

michaelbahr 21.01.2019 13:31

Это было из спецификации PDF ( adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.‌​pdf ). Один для флага кнопки, а не для значения. Я хотел сказать "ты не можешь". Если ваш файл позволяет что-то подобное, то либо это не кнопка, либо это какое-то волшебство с javascript.

Tilman Hausherr 21.01.2019 14:03
"в большинстве наших PDF-шаблонов для отображения флажков используются кнопки, а не флажки" - это звучит очень странно, особенно учитывая цитату @Tilman из спецификации. Поэтому, если ваши шаблоны вообще функционируют (то есть запоминают состояние), они просто делают это случайно или из-за неправильного использования звуковых функций...
mkl 21.01.2019 19:26

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

michaelbahr 22.01.2019 15:46
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
196
0

Другие вопросы по теме