簡體   English   中英

iTextSharp-Pdf文件上的數字簽名問題

[英]iTextSharp - Digital Signature Issue on Pdf File

我正在使用iTextSharp將數字簽名添加到新的pdf。 數字簽名將按預期放置在文件上。 但是,當我單擊該框時,它實際上不允許我選擇要簽名的數字簽名。

我打開了我們公司之一的其他pdf文件,該文件允許數字簽名,只是為了測試我的簽名是否有效。 當我單擊此pdf框中的框時,它使我可以選擇數字簽名。 所以我知道我的簽名確實有效。

有人知道導致此問題的原因嗎? 我用於測試的將簽名添加到pdf的代碼如下:

任何幫助將不勝感激。

using (Document document = new Document())
        {
            PdfWriter writer = PdfWriter.GetInstance(document, new System.IO.FileStream(@"C:\Users\myusername\Desktop\test.pdf", System.IO.FileMode.Create));
            document.Open();
            document.Add(new Paragraph("A paragraph"));
            PdfFormField sig = PdfFormField.CreateSignature(writer);
            sig.SetWidget(new Rectangle(100, 100, 250, 150), null);
            sig.FieldName = "testSignature";
            sig.Flags = PdfAnnotation.FLAGS_PRINT;
            sig.SetPage();
            sig.MKBorderColor = BaseColor.BLACK;
            sig.MKBackgroundColor = BaseColor.WHITE;
            PdfAppearance appearance = PdfAppearance.CreateAppearance(writer, 72, 48);
            appearance.Rectangle(0.5f, 0.5f, 71.5f, 47.5f);
            appearance.Stroke();
            sig.SetAppearance(
              PdfAnnotation.APPEARANCE_NORMAL, appearance
            );
            writer.AddAnnotation(sig);
        }

我認為這是一個誤會。

使用iText或iTextSharp將簽名字段添加到PDF時,擁有Adobe Acrobat完整版的人可以使用該字段對PDF簽名。 或者,您可以使用iText(Sharp)以編程方式對文檔進行簽名。

只有Adobe Reader的人將無法通過單擊注釋對文件進行簽名。 這是正常現象:PDF不是“啟用閱讀器”。 啟用閱讀器的功能只能在Acrobat(和某些其他Adobe產品)中完成。 使用Adobe的私鑰,將應用特殊的“使用權”簽名。 當Adobe Reader可以使用Adobe的公鑰驗證此特殊簽名時,Adobe Reader將解鎖特定功能,例如:像Reader是Acrobat一樣對文檔進行簽名的功能。

毋庸置疑,除Adobe之外,沒有第三方可以使用Adobe的私鑰來實現這一目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM