| Thành viên | Trả lời |
kaka
 Thiên thần Kaka 37 bài
| 9-4-2019 15:29:56 Chỉ cần chọn file sau đó lấy thông tin chữ ký số tử Token USB ghi vào trong file pdf thông qua PdfStamper và PdfSignatureAppearance ========
OpenFileDialog ofd = new OpenFileDialog(); ofd.ShowDialog();
if (ofd.FileName != "") { string new_file_pdf = ofd.FileName.ToLower().Replace(".pdf", "_signed.pdf"); X509Store store = new X509Store(StoreLocation.CurrentUser); store.Open(OpenFlags.ReadOnly); X509Certificate2Collection sel = X509Certificate2UI.SelectFromCollection(store.Certificates, null, null, X509SelectionFlag.SingleSelection);
X509Certificate2 cert = sel[0];
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(ofd.FileName);
//StreamWriter signedPdf = new StreamWriter(File.Open("D:\\sign2.pdf", FileMode.Create), Encoding.Unicode); FileStream signedPdf = new FileStream(new_file_pdf, FileMode.Create);
PdfStamper pdfStamper = PdfStamper.CreateSignature(pdfReader, signedPdf, '\0'); PdfSignatureAppearance signatureAppearance = pdfStamper.SignatureAppearance;
BaseFont bf = BaseFont.CreateFont(Environment.GetEnvironmentVariable("windir") + @"\fonts\ARIALUNI.TTF", BaseFont.IDENTITY_H, true); Font NormalFont = new iTextSharp.text.Font(bf, 11, iTextSharp.text.Font.NORMAL, BaseColor.BLACK); //signatureAppearance.SignatureGraphic = Image.GetInstance("d:\\sign.png"); signatureAppearance.SetVisibleSignature(new Rectangle(0, 0, 300, 80), pdfReader.NumberOfPages, "Signature"); signatureAppearance.SignatureRenderingMode = PdfSignatureAppearance.RenderingMode.DESCRIPTION; signatureAppearance.Layer2Font = NormalFont;
MakeSignature.SignDetached(signatureAppearance, externalSignature, chain, null, null, null, 0, CryptoStandard.CMS);
MessageBox.Show("Xong ! " + new_file_pdf); }
http://coder.awas.vn/downloads.ashx?id=6905d7a006614d429c86412ca793ec93
|
xxchikhai8

1 bài
| 22-3-2022 11:23:8 Tôi sử dụng PdfStamper trong .Net Core không được! nó bị lỗi. Mà khi tôi sử dụng nó trong filr thuần c# thì đc 
|
dinhtq

1 bài
| 18-8-2022 8:43:11
|
 |