Appearances for signature are not showing properly in Adobe Acrobat. The 'thumbnail' shows up on the thumbnail panel but its not showing on the actually PDF.
This pdf has a certification digital signature and revision one. The signature field appearance is set between the two digital signatures. If I click the 'view signed version', there is a report with an error 4000 about invalid appearance.
15 0 obj
<<
/Type /XObject
/Subtype /Image
/BitsPerComponent 8
/Width 125
/Height 132
/ColorSpace /DeviceRGB
/SMask 21 0 R
/Filter /FlateDecode
/Length 70
>>
stream
...
endobj
16 0 obj
<<
/Type /Font
/Subtype /Type1
/BaseFont /Courier
/Encoding /WinAnsiEncoding
>>
endobj
17 0 obj
<<
/BBox [ 0 0 200 100 ]
/Resources <<
>>
/Subtype /Form
/Type /XObject
/Filter /FlateDecode
/Length 17
>>
stream
...
endstream
endobj
18 0 obj
<<
/BBox [ 0 0 200 100 ]
/Resources <<
/XObject <<
/Im1 15 0 R
>>
>>
/Subtype /Form
/Type /XObject
/Filter /FlateDecode
/Length 34
>>
stream
...
endstream
endobj
19 0 obj
<<
/BBox [ 0 0 200 100 ]
/Resources <<
/XObject <<
/n0 17 0 R
/n2 18 0 R
>>
>>
/Subtype /Form
/Type /XObject
/Filter /FlateDecode
/Length 42
>>
stream
...
endstream
endobj
20 0 obj
<<
/BBox [ 0 0 200 100 ]
/Resources <<
/XObject <<
/FRM 19 0 R
>>
>>
/Subtype /Form
/Type /XObject
/Filter /FlateDecode
/Length 22
>>
stream
...
endstream
endobj
21 0 obj
<<
/Type /XObject
/Subtype /Image
/Height 132
/Width 125
/BitsPerComponent 8
/ColorSpace /DeviceGray
/Decode [ 0 1 ]
/Filter /FlateDecode
/Length 1824
>>
stream
...
endstream
endobj
I'm using pdf-lib to manage every step of the workflow. Right now, I'm just trying to check other/similar post and test other ways to structure the pdf objects.
pdf and its signatures should be valid in any pdf reader.
result after certification, signature field filled, 2nd digital signature
Your approval signature dictionaries have Reference entries whose values are empty dictionaries:
14 0 obj
<<
/ByteRange [0 6449 9903 4059]
/Contents ...
/Filter /Adobe.PPKLite
/Prop_Build <<
/App <<
/Name /SPDF.js
>>
>>
/Reference <<
>>
/SubFilter /adbe.pkcs7.detached
/Type /Sig
/Location (Test, Local)
/Reason (signing documents)
/ContactInfo (test@localhost.com)
/Date ()
>>
...
23 0 obj
<<
/ByteRange [0 14176 17636 645]
/Contents ...
/Filter /Adobe.PPKLite
/Prop_Build <<
/App <<
/Name /SPDF.js
>>
>>
/Reference <<
>>
/SubFilter /adbe.pkcs7.detached
/Type /Sig
/Location (Test, Local)
/Reason (signing documents)
/ContactInfo (test@localhost.com)
/Date ()
>>
But Reference is documented to have an array value:
Key | Type | Value |
---|---|---|
Reference | array | (Optional; PDF 1.5) An array of signature reference dictionaries (see "Table 256 — Entries in a signature reference dictionary"). If SubFilter is ETSI.RFC3161, this entry shall not be used. |
(ISO 32000-2, Table 255 — Entries in a signature dictionary)
Usually approval signatures don't have a Reference entry at all, but if you need one, make it an empty array.
(There are some other issues in the PDFs, too, but this appears to be the one that causes Acrobat to ignore those signatures and their appearance.)