2012-03-22 32 views
3

私は2人で署名されたPDFを持っています(Eidによる)。ItextSharpでデジタル署名情報(名前、日付、...)を取得する方法

私はこの情報を取得しようとしていますが、これまでのところできません。

これは私がこれまで持っているものです。

namespace ConsoleApplication1 
    { 
     class Program 
     { 
      static void Main(string[] args) 
      { 
       string workingFolder = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); 
       string inputFile = Path.Combine(workingFolder, "Tax Return.pdf");    

       PdfReader reader = new PdfReader(inputFile); 

       Console.ReadLine(); 
      } 
     } 
    } 

私は、実行時に「読者」を調べると、私はAcroFormが署名を指すが、私は任意の特定の情報を見ることができないんだ2つのフィールドを持っていることがわかりますこれらの署名について

答えて

7

ショート例:

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") 
); 
} 
関連する問題