如何使用itextsharp C#从签名字段中删除有效性未知图标?

如何使用itextsharp C#从签名字段中删除有效性未知图标?,c#,itext,digital-signature,acrobat,pkcs#7,C#,Itext,Digital Signature,Acrobat,Pkcs#7,如何在计算pdf散列之前从签名字段中删除有效性未知图标(问号) 下面是我用来创建签名字段的代码 PdfStamper stamper = PdfStamper.CreateSignature(reader, os, '\0'); PdfSignatureAppearance appearance = stamper.SignatureAppearance; appearance.SignDate = DateTime.Now.AddMinutes(15); appearance.Reason =

如何在计算pdf散列之前从签名字段中删除有效性未知图标(问号)

下面是我用来创建签名字段的代码

PdfStamper stamper = PdfStamper.CreateSignature(reader, os, '\0');
PdfSignatureAppearance appearance = stamper.SignatureAppearance;
appearance.SignDate = DateTime.Now.AddMinutes(15);
appearance.Reason = reasonForSign;
appearance.Contact = "";
appearance.Location = locationToShowOnSignatureStamp;
appearance.Acro6Layers = false;
appearance.Image = null;
appearance.SignatureRenderingMode = PdfSignatureAppearance.RenderingMode.DESCRIPTION;
appearance.CertificationLevel = PdfSignatureAppearance.NOT_CERTIFIED;
appearance.SetVisibleSignature(new iTextSharp.text.Rectangle(10, 10, 149, 69), reader.NumberOfPages, "s1");

您的代码明确要求使用以下图标:

appearance.Acro6Layers = false;
这指示itext创建签名外观,就像AdobeAcrobat版本5之前所做的那样。这包括带有肯定、不确定或否定验证结果的签名的“层”。如果你使用

appearance.Acro6Layers = true;

相反(默认情况下),itext创建的签名Adobe Acrobat将不再显示验证结果的页面可视化

谢谢,它起作用了。我指的是Itextsharp的pdf文件。“Jim Holmes、James Avery编写的Windows开发者电动工具”。你能告诉我你使用itextsharp C#@Mannan的数字签名指的是哪一份文件吗?考虑到那本书是2007年出版的,很可能它有点过时了。当您在版本7之前使用itext时,您可能会对白皮书感兴趣。本文使用的是java示例,但您可以找到它们的c#版本。@mkl,pdf签名后如何删除这些签名有效性符号。可以使用pdfreader完成吗?严格来说,按照当前标准显示文档可视化变化的查看器是不可用的。Adobe似乎认为向后兼容性是必要的(可能是他们的法律部门想要的),因此,发布坏的查看器。可以按照中的说明尝试删除。但请注意:签名后的更改可能由PDF查看器指示,例如,@mkl中的屏幕截图,谢谢您的ans,但我不想更改整个外观,我只想在应用程序中查看时删除黄色问号,请让我知道使用您建议的ans中的哪个属性,我可以将AcroFields设置为true,以便黄色问号消失。