[
https://issues.apache.org/jira/browse/PDFBOX-2470?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tilman Hausherr updated PDFBOX-2470:
------------------------------------
Description:
Hi
I have made the following modifications to avoid ClassCastException or
NullPointerException in addSignature(PDSignature sigObject, SignatureInterface
signatureInterface, SignatureOptions options) :
{code}
// Appearance Dictionary auslesen und setzen
// MOD_CS
// PDAppearanceDictionary ap =
// new
PDAppearanceDictionary((COSDictionary)cosBaseDict.getItem(COSName.AP));
// ap.getDictionary().setDirect(true);
// signatureField.getWidget().setAppearance(ap);
COSBase item = cosBaseDict.getItem(COSName.AP);
if (item instanceof COSObject) {
item = ((COSObject) item).getObject();
}
if (item instanceof COSDictionary) {
PDAppearanceDictionary ap = new
PDAppearanceDictionary((COSDictionary) item);
ap.getDictionary().setDirect(true);
signatureField.getWidget().setAppearance(ap);
}
// AcroForm DefaultRessource auslesen und setzen
COSBase dr = cosBaseDict.getItem(COSName.DR);
// MOD_CS
if (dr != null) {
dr.setDirect(true);
dr.setNeedToBeUpdate(true);
acroFormDict.setItem(COSName.DR, dr);
}
{code}
Regards
was:
Hi
I have made the following modifications to avoid ClassCastException or
NullPointerException in addSignature(PDSignature sigObject, SignatureInterface
signatureInterface, SignatureOptions options) :
// Appearance Dictionary auslesen und setzen
// MOD_CS
// PDAppearanceDictionary ap =
// new
PDAppearanceDictionary((COSDictionary)cosBaseDict.getItem(COSName.AP));
// ap.getDictionary().setDirect(true);
// signatureField.getWidget().setAppearance(ap);
COSBase item = cosBaseDict.getItem(COSName.AP);
if (item instanceof COSObject) {
item = ((COSObject) item).getObject();
}
if (item instanceof COSDictionary) {
PDAppearanceDictionary ap = new
PDAppearanceDictionary((COSDictionary) item);
ap.getDictionary().setDirect(true);
signatureField.getWidget().setAppearance(ap);
}
// AcroForm DefaultRessource auslesen und setzen
COSBase dr = cosBaseDict.getItem(COSName.DR);
// MOD_CS
if (dr != null) {
dr.setDirect(true);
dr.setNeedToBeUpdate(true);
acroFormDict.setItem(COSName.DR, dr);
}
Regards
> Exception in PDDocument.addSignature(PDSignature sigObject,
> SignatureInterface signatureInterface, SignatureOptions options))
> -----------------------------------------------------------------------------------------------------------------------------
>
> Key: PDFBOX-2470
> URL: https://issues.apache.org/jira/browse/PDFBOX-2470
> Project: PDFBox
> Issue Type: Bug
> Components: PDModel
> Affects Versions: 1.8.7
> Reporter: Huynh
> Labels: patch
>
> Hi
> I have made the following modifications to avoid ClassCastException or
> NullPointerException in addSignature(PDSignature sigObject,
> SignatureInterface signatureInterface, SignatureOptions options) :
> {code}
> // Appearance Dictionary auslesen und setzen
> // MOD_CS
> // PDAppearanceDictionary ap =
> // new
> PDAppearanceDictionary((COSDictionary)cosBaseDict.getItem(COSName.AP));
> // ap.getDictionary().setDirect(true);
> // signatureField.getWidget().setAppearance(ap);
> COSBase item = cosBaseDict.getItem(COSName.AP);
> if (item instanceof COSObject) {
> item = ((COSObject) item).getObject();
> }
> if (item instanceof COSDictionary) {
> PDAppearanceDictionary ap = new
> PDAppearanceDictionary((COSDictionary) item);
> ap.getDictionary().setDirect(true);
> signatureField.getWidget().setAppearance(ap);
> }
>
> // AcroForm DefaultRessource auslesen und setzen
> COSBase dr = cosBaseDict.getItem(COSName.DR);
> // MOD_CS
> if (dr != null) {
> dr.setDirect(true);
> dr.setNeedToBeUpdate(true);
> acroFormDict.setItem(COSName.DR, dr);
> }
> {code}
> Regards
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)