C#指定文件夹内新创建pdf文件加签数字证书,代码实现
引用:Spire.Pdf
{
string[] files = Directory.GetFiles(Config.pdfPath);//需加数字证书pdf存放文件夹地址
string filesList = "";
foreach (string file in files) //循环获取文件夹内pdf文件并加数字证书
{
string exname = file.Substring(file.LastIndexOf(".") + 1);
if ("pdf".IndexOf(exname) > -1)
{
FileInfo fi = new FileInfo(file);
string fileName = fi.FullName.Replace(@"\", @"\\");
DateTime timeB = DateTime.Now; //获取当前时间
TimeSpan ts = timeB - fi.CreationTime; //计算文件创建到当前时间的时间差
if (ts.TotalSeconds > int.Parse(60))//大于60秒的不加签
{
continue;
}
else {
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile(fileName);
X509Certificate2 x509 = new X509Certificate2("D:\备份\数字证书\XXX.pfx", "XXXX");//入参 (数字证书存放地址,KEY)
PdfOrdinarySignatureMaker signatureMaker = new PdfOrdinarySignatureMaker(pdf, x509);
signatureMaker.MakeSignature("XXXX"); //KEY
pdf.SaveToFile(fileName, FileFormat.PDF); //保存加数字签名后的文件
filesList += fileName + ";\r\n";
}
}
else
{
continue;
}
}
if (filesList != "") {
Log.info(filesList + "已加签数字证书\r\n");
}
Log.debug("加签结束");
}