[英]How to retrieve digital signature information (name, date, …) with ItextSharp
我有一個由2人(Eid)簽名的PDF。
我正在嘗試檢索這些信息,但到目前為止我還不能。
這是我到目前為止:
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();
}
}
}
如果我在運行期間檢查'reader',我可以看到AcroForm有2個指向簽名的字段,但我無法看到有關這些簽名的任何特定信息。
簡短的例子:
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")
);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.