签名PDF文档
问题描述:
目前我升级我这是使用iTextSharp的5.0.0至5.4.5(最新)做旧的应用程序......但我在获得同等代码签名PDF文档
PdfSignatureAppearance.SetCrypto(this.myCert.Akp, this.myCert.Chain, null, PdfSignatureAppearance.SELF_SIGNED);
问题有谁能帮我解决这个问题吗?
在此先感谢...
答
我签使用5.5版本的iTextSharp的的PDF文档。 以下是示例代码。
// Set the reader (PdfReader) and output (Stream) first
PdfStamper stamper = PdfStamper.CreateSignature(reader, output, '\0');
PdfSignatureAppearance signatureAppearance = stamper.SignatureAppearance;
signatureAppearance.SignatureRenderingMode = PdfSignatureAppearance.RenderingMode.GRAPHIC_AND_DESCRIPTION;
signatureAppearance.Reason = "I love signing";
signatureAppearance.LocationCaption = "";
signatureAppearance.SignatureGraphic = Image.GetInstance(this.imageFolderPath + "sign.png");
signatureAppearance.SetVisibleSignature(
new Rectangle(100, 100, 300, 200),
reader.NumberOfPages,
"Signature");
// Get certificate from store, here I am reading file
X509Certificate2 cert = new X509Certificate2(certFile, certPassword);
var keyPair = DotNetUtils.GetKeyPair(cert.PrivateKey).Private;
BcX509.X509Certificate bcCert = DotNetUtils.FromX509Certificate(cert);
var chain = new List<BcX509.X509Certificate> { bcCert };
IExternalSignature signature = new PrivateKeySignature(keyPair, "SHA-256");
MakeSignature.SignDetached(signatureAppearance, signature, chain, null, null, null, 0, CryptoStandard.CMS);
stamper.Close();
签名API(至少是您期望使用的*别)已经发生了一些变化。您可能需要阅读[PDF文档的数字签名](http://itextpdf.com/book/digitalsignatures),*由Bruno Lowagie(iText Software)*编写的白皮书*与iText(Sharp)签署。其中的代码示例使用Java,但C#版本也可用。 – mkl
你可以给我提供C#链接吗? –
它们至少可以在[tutorial](http://svn.code.sf.net/p/itextsharp/code/tutorial)中的subversion版本库中找到;不过,我不知道是否有任何美化版本。 – mkl