Я хочу создать кнопку в PDFBOX, то есть подтвердить или сбросить кнопку, которая вызовет некоторую функцию встроенного javascript в PDF.Как создать кнопку в PDF BOX?
Как создать такую кнопку в PDFBOX?
Я пробовал следующий код с фрагментом PDPushButton, но теперь он работает правильно. Здесь, когда я нажимаю на область кнопки, отображается значок метки метки и переключается на каждый щелчок. Также граница не отображается. Вместо этого я хочу отобразить обычную кнопку с меткой и границей вокруг нее.
Я использую pdfbox версию 1.8.10.
PDDocument doc = new PDDocument();
PDPage page = new PDPage();
doc.addPage(page);
PDAcroForm acroForm = new PDAcroForm(doc);
doc.getDocumentCatalog().setAcroForm(acroForm);
PDActionJavaScript javascript = new PDActionJavaScript("function validate(index){ app.alert(index); }");
doc.getDocumentCatalog().setOpenAction(javascript);
COSDictionary cosDict = new COSDictionary();
COSArray rect = new COSArray();
rect.add(new COSFloat(100));
rect.add(new COSFloat(10));
rect.add(new COSFloat(200));
rect.add(new COSFloat(60));
cosDict.setItem(COSName.RECT, rect);
cosDict.setItem(COSName.FT, COSName.getPDFName("Btn")); // Field Type
cosDict.setItem(COSName.TYPE, COSName.ANNOT);
cosDict.setItem(COSName.SUBTYPE, COSName.getPDFName("Widget"));
cosDict.setItem(COSName.T, new COSString("My Btn"));
cosDict.setItem(COSName.V, new COSString("Validate"));
cosDict.setItem(COSName.DA, new COSString("/Helv 7 Tf 0 g"));
PDPushButton button = new PDPushButton(acroForm, cosDict);
button.setValue("Validate Button");
PDActionJavaScript tfJs = new PDActionJavaScript("validate("+index+");");
PDAnnotationAdditionalActions tfAction = new PDAnnotationAdditionalActions();
tfAction.setU(tfJs);
button.getWidget().setActions(tfAction);
PDGamma colourBlack = new PDGamma();
PDAppearanceCharacteristicsDictionary fieldAppearance =
new PDAppearanceCharacteristicsDictionary(cosDict);
fieldAppearance.setBorderColour(colourBlack);
button.getWidget().setAppearanceCharacteristics(fieldAppearance);
page.getAnnotations().add(button.getWidget());
acroForm.getFields().add(button);
Я пробовал с PDPushButton, но я не могу установить значение текста кнопки здесь, также когда я нажал на кнопку галочки отметки кнопки. –
Я предлагаю вам включить свой комментарий в вопрос (вы можете редактировать), а также включить код, который вы сделали. И укажите, какую версию вы используете. (Надеюсь, 1.8.10 или 2.0). Обратите внимание, что вызов не является новым PDPushButton, но PDFieldFactory.createField(), и это несколько сложно. –
Я ничего не вижу, хотя я нашел, где он (ваш код не работает самостоятельно, документы и страницы отсутствуют). Добавьте это в свой код: cosDict.setInt (COSName.FF, 65536); это флаг для кнопки. –