Diễn đàn    Các Projects Dotnetnuke (DNN)    Ký điện tử file PDF

Thành viênTrả 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
 
 

Chủ đề gần đây :

Cùng loại :

Tên file Mô tả chi tiết Ngày
NWeb.zip (1) Module đơn giản Newsweb trên Dotnetnuke v10.x.x.x10/18/2025 8:08:11 AM
vspforum.zip (11) Ma nguon vspforum ngay xua4/18/2023 6:38:37 AM
pdfjs.rar (2) pdfjs 2017 : hiển thị tốt trên iphone 11, 12, 13 không lỗi, bản 2012 sẽ lỗi trên iphone6/21/2022 11:52:48 AM
pdfjs2.rar (2) Xem file pdf bằng viewer.hml cua pdfjs (thư viện chuẩn mozilla) 2012. https://mozilla.github.io/pdf.js/getting_started/#download có thể download bản prebuild tại đây6/21/2022 11:52:04 AM
runner.zip (0) using three.js, orbitcontrol to view an object move random on map. Di chuyển 1 đồ vật ngẫu nhiên trên bản đồ, sử dụng với demo nhân viên di chuyển trong văn phòng. Toàn js download về là chạy12/5/2019 5:55:14 PM
gmap.zip (1) google map + marker7/17/2019 2:25:05 PM
vinsmarthomeservice.zip (1) java post json to api, use AsyncTask, event listener7/9/2019 5:00:10 PM
fblogin.zip (0) Login facebook bang javascript SDK7/9/2019 9:16:37 AM
autocomplete-location.zip (2) autocomplete location geo from google place, html + js7/4/2019 4:37:55 PM
WebAPI.zip (8) api for android access db (v1.0.0)7/4/2019 9:14:17 AM