How to retrieve digital signature information (name, date, …) with ItextSharp

后端 未结 1 1174
萌比男神i
萌比男神i 2021-01-06 01:00

I have a PDF which has been signed by 2 people (by Eid).

I\'m trying to retrieve this information but I\'m unable so far.

This is what I have so far:

1条回答
  •  谎友^
    谎友^ (楼主)
    2021-01-06 01:24

    Short example:

    StringBuilder sb = new StringBuilder();
    PdfReader reader = new PdfReader(pdf);
    AcroFields af = reader.AcroFields;
    ArrayList  names = af.GetSignatureNames();
    for (int i = 0; i < names.Count; ++i) {
      String name = (string)names[i];
      PdfPKCS7 pk = af.VerifySignature(name);
      sb.AppendFormat("Signature field name: {0}\n", name);
      sb.AppendFormat("Signature signer name: {0}\n", pk.SignName);
      sb.AppendFormat("Signature date: {0}\n", pk.SignDate);
      sb.AppendFormat("Signature country: {0}\n",  
        PdfPKCS7.GetSubjectFields(pk.SigningCertificate).GetField("C")
      );
      sb.AppendFormat("Signature organization: {0}\n",  
        PdfPKCS7.GetSubjectFields(pk.SigningCertificate).GetField("O")
      );
      sb.AppendFormat("Signature unit: {0}\n",  
        PdfPKCS7.GetSubjectFields(pk.SigningCertificate).GetField("OU")
      );
    }
    

    0 讨论(0)
提交回复
热议问题