According to the PDF spec: "(Optional; pushbutton fields only) The
widget annotation’s rollover caption, which shall be displayed when the
user rolls the cursor into its active area without pressing the mouse
button."
The best would be to create such a file with Adobe Acrobat to see if it
works at all.
Tilman
Am 25.05.2017 um 03:45 schrieb Gary Grosso:
I was expecting
PDAppearanceCharacteristicsDictionary.setRolloverCaption(String<eclipse-javadoc:%E2%98%82=Morph2Form/D:%5C/JavaTraining%5C/EclipseNeonWorkspace%5C/CreateSimpleForm%5C/lib%5C/pdfbox-2.0.6.jar%3Corg.apache.pdfbox.pdmodel.interactive.annotation(PDAppearanceCharacteristicsDictionary.class%E2%98%83PDAppearanceCharacteristicsDictionary~setRolloverCaption~Ljava.lang.String;%E2%98%82java.lang.String>
caption) to display the value of argument caption when the user's mouse rolled over
the widget.
I get the value passed to setNormalCaption() regardless. Is the problem with my
expectations, my usage, or the implementation?
I'm morphing an existing PDF document, finding locations based on a kludge,
since this is still proof-of-principle, so I only show the one method below. I
can write a create-PDF-from-scratch driver for the method if necessary.
Thanks,
Gary
private static void addButtonAtRect(PDPage page, PDAcroForm acroForm,
String text, PDRectangle rect) {
PDPushButton pushButton = new PDPushButton(acroForm);
// For now, just make sure each partial name is unique.
String nameStr = text.replaceAll(" ", "") + "Name" +
Integer.toString(nameCnt);
nameCnt++;
pushButton.setPartialName(nameStr);
acroForm.getFields().add(pushButton);
PDAnnotationWidget widget = pushButton.getWidgets().get(0);
widget.setRectangle(rect);
if (rect.getHeight() < MIN_RECT_HEIGHT) {
float diff = MIN_RECT_HEIGHT - rect.getHeight();
rect.setLowerLeftY((float) (rect.getLowerLeftY() - diff/2.0));
rect.setUpperRightY((float) (rect.getUpperRightY() + diff/2.0));
}
widget.setPage(page);
String jsString = "app.alert(\"" + text + " Performed.\");";
//Creating PDActionJavaScript object
PDActionJavaScript action = new PDActionJavaScript(jsString);
widget.setAction(action);
acroForm.setNeedAppearances(true);
PDAppearanceCharacteristicsDictionary fieldAppearance = new
PDAppearanceCharacteristicsDictionary(new COSDictionary());
fieldAppearance.setBorderColour(new PDColor(new float[]{0.3F, 0.3F,
0.7F}, PDDeviceRGB.INSTANCE));
fieldAppearance.setBackground(new PDColor(new float[]{0.9F, 0.9F,
0.9F}, PDDeviceRGB.INSTANCE));
fieldAppearance.setNormalCaption("This is my NormalCaption");
fieldAppearance.setRolloverCaption("This is my RolloverCaption");
fieldAppearance.setAlternateCaption("This is my AlternateCaption");
widget.setAppearanceCharacteristics(fieldAppearance);
widget.setPrinted(true);
try {
page.getAnnotations().add(widget);
} catch (IOException e) {
e.printStackTrace();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]