繁体   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