PDF shows signature in Foxit Reader but not Adobe Reader

Why does this PDF show the signature in Foxit Reader but not Adobe Reader?

Here is the code from the Syncfusion PDF library used to generate it (see also the documentation on signing an existing document ):

var signature = new PdfSignature(loadedDocument, page, certificate, "Signature");
signature.Certificate = certificate;
signature.Bounds = new RectangleF(100, 100, 200, 200);
signature.Appearence.Normal.Graphics.DrawRectangle(PdfBrushes.Red, new RectangleF(0, 0, 200, 200));

      

When I use this on an existing PDF, the signature is identified in Foxit Reader:

enter image description here

But not in Adobe Reader:

enter image description here

Below is the resulting PDF for analysis.

Why is this? Is there anything I can do to fix this so that Adobe recognizes it?

EDIT

Here's the original PDF before you do anything with it.

Decision

I used the Nuget package from the own Nuget Syncfusion server , which is up to date (not on Nuget.org).

+3


source to share


3 answers


This answer concentrates on the first question:

Why is this?

Since I have no experience with the Syncfusion PDF library, I cannot tell you exactly what you are

can do this for Adobe to recognize it.

PDF object structure

Screenshot of directory contents

Broken field hierarchy

In the above screen shot shows that in dictionary AcroForm array of fields has one entry field object 12 0

.

A field object 12 0

has only a local name ( T value : "Signature") and an array of Children of descendant field objects containing one descendant record, a field object 9 0

.

The field object 9 0

also has a local name (also "Signature", hence its full field name Signature.Signature

) and many other entries, most of which are approved for the signature field and widget. It does not have a Parental entry .

As per the PDF specification, the Parent entry in the field

Required if this field is a child of another in the field hierarchy

(ISO 32000-1, Table 220 - Entries common to all field vocabularies)

A single document page (object 5 0

) in its characters refers to the field object 9 0

in its role as a widget annotation.

Thus, from the Fields AcroForm array , the field object 9 0

is a child of another field and has a fully qualified name Signature.Signature

.



But based on the page using Annots , the field object 9 0

has no parent and hence appears as a fully qualified root field Signature

.

Thus, the identity of the signature field is unclear.

Request a second request

Also, in the object structure higher than in the AcroForm dictionary, the NeedAppearances flag is set to true

.

This asks for a PDF viewer

to create appearance flows and prominent vocabularies for all widget annotations in a document.

(ISO 32000-1, Table 218 - Online Form Dictionary Entries)

In the course of this, Adobe Reader is known to remove annotations with broken structures. As explained above, the field structure of your signature field breaks.

Other features

Some elements of the signature field are somewhat peculiar:

  • BS and MK are data for creating a standard appearance for a widget. Usually, though, the visible signature brings in its own signatures as well as yours. So what are these values ​​for?
  • DA , the default appearance string to be used when formatting the text of variable text annotations, eg. FreeText annotations or text boxes, but why DA in the signature box?

What to do

Obviously bugs and features need to be cleaned up. As mentioned above, I have no experience with the Syncfusion PDF library, so I cannot tell you exactly how to do this.

One hint: I doubt the Syncfusion PDF library regularly generates this kind of nonsense when generating signatures, so there is most likely something special about the document you want to sign, please check it out. For example. if the original document already contains a form field named Signature, the broken structure may be the result of some Syncfusion code trying to merge the new signature field with the old field.

+5


source


We already faced such a problem on our side with an older version. We have now fixed this issue in our latest release. Click here to download the latest version



Here is a sample to sign an existing PDF

+1


source


We have checked the sample data file. The problem has been fixed in the latest version. The Nuget package you are using is considered an older version. Find the link below to download the latest nuget package.

Click here to download

Try the sample with the latest version.

0


source







All Articles