Zitat von Gilad Denneboom <[email protected]>:
Well, I've found the code, but I must say it's not very clear to me what I
need to use from it. First of all, the comments are in German, and my German
is a bit rusty...
I will try to translate it by time.
But beyond that, it seems most things are Signature-specific and some of the
methods do not exist at all in version 1.5.0 (like needToBeUpdate on
COSBase).
The field is signature specific, the annotation is a normal widget.
But thats no problem to use the right Fields / Annotations.
needToBeUpdate is specific for incremental updates and you don't need it.
Here's my new code (the definition of textField is the same as above):
PDDocumentCatalog root = doc.getDocumentCatalog();
PDAcroForm acroForm = root.getAcroForm();
// Set the widget's page
PDPage page0 = (PDPage) root.getAllPages().get(0);
textField.getWidget().getDictionary().setItem(COSName.P, page0); //
instead of PDAnnotation.setPage()
Both should do the same.
// Add the field to AcroForm
List acroFormFields = acroForm.getFields();
acroFormFields.add(textField);
// Add the widget to the page's annotations
List annotations = page0.getAnnotations();
if (annotations== null)
{
annotations = new COSArrayList();
}
annotations.add(textField.getWidget());
page0.setAnnotations(annotations);
//page0.getCOSObject().setNeedToBeUpdate(true);
The result also shows the malformed message when I open the JS console and
the field is still not visible/accessible.
Thats bad, I use the same way to include visual signatures inside the
document. Can you please mail me the malformed pdf? i think
attachments aren't allowed in the mailinglist.
Best Regards
Thomas