Sign PDF with iTextSharp 5.3.3 and USB token

后端 未结 3 1371
轮回少年
轮回少年 2020-12-01 08:41

I\'m new to iTextSharp (and StackOverFlow). I\'m trying to sign a PDF in C# using external USB token. I try using the follow code I\'ve digged from the internet.

<         


        
3条回答
  •  无人及你
    2020-12-01 09:24

    The same code as above but uses a certificate file instead of store to sign a PDF document on the last page.

     X509Certificate2 cert = new X509Certificate2("C:\\mycert.p12");
    
     Org.BouncyCastle.X509.X509CertificateParser cp = new Org.BouncyCastle.X509.X509CertificateParser();
     Org.BouncyCastle.X509.X509Certificate[] chain = new Org.BouncyCastle.X509.X509Certificate[] {
     cp.ReadCertificate(cert.RawData)};
    
     IExternalSignature externalSignature = new X509Certificate2Signature(cert, "SHA-1");
    
     PdfReader pdfReader = new PdfReader("C:\\multi-page-pdf.pdf");
    
     var signedPdf = new FileStream("C:\\multi-page-pdf-signed.pdf", FileMode.Create);
    
     var pdfStamper = PdfStamper.CreateSignature(pdfReader, signedPdf, '\0');
     PdfSignatureAppearance signatureAppearance = pdfStamper.SignatureAppearance;
    
     signatureAppearance.SignatureGraphic = Image.GetInstance("C:\\logo.png");
     signatureAppearance.Reason = "Because I can";
     signatureAppearance.Location = "My location";
     signatureAppearance.SetVisibleSignature(new Rectangle(100, 100, 250, 150), pdfReader.NumberOfPages, "Signature");
     signatureAppearance.SignatureRenderingMode = PdfSignatureAppearance.RenderingMode.GRAPHIC_AND_DESCRIPTION;
    
     MakeSignature.SignDetached(signatureAppearance, externalSignature, chain, null, null, null, 0, CryptoStandard.CMS);
    

    Copy, paste, import needed libraries and go work on something else.

提交回复
热议问题