Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Text;
  4. using System.Security.Cryptography.X509Certificates;
  5. using iTextSharp.text;
  6. using iTextSharp.text.pdf;
  7. using iTextSharp.text.pdf.security;
  8.  
  9. namespace Test
  10. {
  11. class Program
  12. {
  13. static void Main(string[] args)
  14. {
  15. System.IO.Stream stream = new MemoryStream();
  16. Document document = new Document();
  17. document.SetPageSize(PageSize.A4);
  18. PdfWriter writer = PdfWriter.GetInstance(document, stream);
  19. writer.CloseStream = false;
  20. document.Open();
  21. document.Add(new Paragraph("Hello World"));
  22. document.Close();
  23. writer.Close();
  24.  
  25. string destPdfFileName = @"D:out.pdf";
  26. string pfxFileName = @"D:cert.pfx";
  27. string pfxPassword = "password";
  28. var cert = new X509Certificate2(pfxFileName, pfxPassword);
  29.  
  30. stream.Position = 0;
  31. Org.BouncyCastle.X509.X509CertificateParser cp = new Org.BouncyCastle.X509.X509CertificateParser();
  32. Org.BouncyCastle.X509.X509Certificate[] chain = new Org.BouncyCastle.X509.X509Certificate[] { cp.ReadCertificate(cert.RawData) };
  33. IExternalSignature externalSignature = new X509Certificate2Signature(cert, "SHA-1");
  34. PdfReader pdfReader = new PdfReader(stream);
  35. FileStream signedPdf = new FileStream(destPdfFileName, FileMode.Create); // the output pdf file
  36. PdfStamper pdfStamper = PdfStamper.CreateSignature(pdfReader, signedPdf, '');
  37. PdfSignatureAppearance signatureAppearance = pdfStamper.SignatureAppearance;
  38. signatureAppearance.Reason = "Reason";
  39. signatureAppearance.Location = "Location";
  40. signatureAppearance.SetVisibleSignature(new iTextSharp.text.Rectangle(20, 10, 170, 60), 1, "Signature");
  41. MakeSignature.SignDetached(signatureAppearance, externalSignature, chain, null, null, null, 0, CryptoStandard.CMS);
  42.  
  43. Console.ReadKey();
  44. }
  45. }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement