/// <summary> /// The method Get Signed PDF. /// </summary> /// <param name="data"> /// The byte array[] /// </param> /// <returns> /// The <see cref="byte[]" />. /// </returns> public byte[] GetSignedPDF(byte[] data) { DateTime startTime = _logger.MethodTraceStartTime(); PDFSign pdfSign = Const.pdfSignPool.Rent() as PDFSign; if (Const.certificateInfo == null) { try { CertificateInfo certificateInfo = Const.certificateInfo = new CertificateInfo(); string reason = ConfigurationManager.AppSettings["SIGN_REASON"]; _logger.WriteDebug(String.Format("Reason :{0}", reason)); string location = ConfigurationManager.AppSettings["SIGN_LOCATION"]; _logger.WriteDebug(String.Format("Location :{0}", location)); string password = ConfigurationManager.AppSettings["PASSWORD"]; _logger.WriteDebug(String.Format("Password :{0}", password)); //string certificatePath = HttpContext.Current.Server.MapPath("~")+ConfigurationManager.AppSettings["CERTIFICATE_PATH"]; string certificatePath = ConfigurationManager.AppSettings["CERTIFICATE_PATH"]; _logger.WriteDebug(String.Format("Certificate Path :{0}", certificatePath)); //certificatePath =HttpContext.Current.Server.MapPath("~")+certificatePath; certificatePath = HostingEnvironment.ApplicationPhysicalPath + certificatePath; _logger.WriteDebug(String.Format("Final Certificate Path :{0}", certificatePath)); certificateInfo.Location = location; certificateInfo.Password = password; certificateInfo.Reason = reason; certificateInfo.CertificatePath = certificatePath; if (!String.IsNullOrWhiteSpace(certificateInfo.CertificatePath) || !String.IsNullOrWhiteSpace(certificateInfo.Password)) { certificateInfo.LoadCertificate(); } Const.certificateInfo = certificateInfo; } catch (Exception ex) { Const.certificateInfo = null; _logger.WriteError(ex); throw; } } //return pdfSign.sign(data, Const.certificateInfo.r, signInfo.location); var pdf = pdfSign.sign(data, Const.certificateInfo.Pkcs12Store, Const.certificateInfo.Password, Const.certificateInfo.Reason, Const.certificateInfo.Location, DateTime.Now); Const.pdfSignPool.Return(pdfSign); _logger.MethodTraceEnd(startTime); return(pdf); }
public string ca(string yhxx) { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); ////-------获取sz中设置的参数--------------------- string debug = f.ReadString("CA", "debug", "").Replace("\0", "").Trim(); string msg = f.ReadString("CA", "message", "1").Replace("\0", "").Trim(); string getblh = ""; string type = ""; string type2 = ""; string yhm = ""; string yhmc = ""; string yhbh = ""; string yhmm = ""; string bglx = ""; string bgxh = ""; #region CA登陆 if (ZGQClass.GetSZ("CA", "ca", "").Replace("\0", "").Trim() == "1") { if (yhxx == "") { return(Login()); } } #endregion string[] getyhxx = yhxx.Split('^'); if (getyhxx.Length == 5) { type = getyhxx[0]; yhm = getyhxx[1]; yhmc = getyhxx[3]; yhbh = getyhxx[2]; yhmm = getyhxx[4]; } else { type2 = getyhxx[0]; getblh = getyhxx[1]; bgxh = getyhxx[2]; bglx = getyhxx[3].ToLower(); type = getyhxx[4]; yhm = getyhxx[5]; yhmc = getyhxx[6]; yhbh = getyhxx[7]; yhmm = getyhxx[8]; } #region 审核前验证KEY if (type == "SH") { return(YZKEY(msg, yhmc, yhbh)); } #endregion string blbh = getblh + bglx + bgxh; #region 审核后执行,数字签名 if (type == "QZ") { if (debug == "1") { MessageBox.Show("审核签字"); } string yw = ""; string isb64yw = f.ReadString("CA", "b64yw", "0").Replace("\0", "").Trim(); bool WithTSA = false; //带时间戳签名 if ((f.ReadString("ca", "WithTSA", "0").Trim().Replace("\0", "").Trim()) == "1") { WithTSA = true; //签名值包含原文 } bool havcount = false; bool isVerify = false; //网关验证 if ((f.ReadString("ca", "isVerify", "0").Trim().Replace("\0", "").Trim()) == "1") { isVerify = true; } string usapurl = f.ReadString("ca", "usapurl", "").Trim().Replace("\0", "").Trim(); //网关地址 string svrcertb64 = f.ReadString("ca", "svrcertb64", "1").Trim().Replace("\0", "").Trim(); //网关证书 string b64SignVal = ""; SecuInter.X509Certificate oCert = null; DataTable dt_jcxx = new DataTable(); DataTable dt_bc = new DataTable(); DataTable dt_bd = new DataTable(); try { #region 原文 dt_jcxx = aa.GetDataTable("select * from T_JCXX where F_BLH='" + getblh + "'", "cgbg"); if (dt_jcxx == null) { if (msg == "1") { MessageBox.Show("连接数据库异常"); } return("0"); } if (dt_jcxx.Rows.Count <= 0) { if (msg == "1") { MessageBox.Show("T_JCXX查询数据异常"); } return("0"); } if (bglx == "cg") { if (dt_jcxx.Rows[0]["F_BGZT"].ToString() != "已审核") { if (msg == "1") { MessageBox.Show("报告未审核"); } return("0"); } yw = "病理号:" + dt_jcxx.Rows[0]["f_blh"].ToString() + "&常规报告&&性别:" + dt_jcxx.Rows[0]["F_XB"].ToString() + "&年龄:" + dt_jcxx.Rows[0]["F_nl"].ToString() + "&住院号:" + dt_jcxx.Rows[0]["F_zyh"].ToString() + "&门诊号:" + dt_jcxx.Rows[0]["F_mzh"].ToString() + "&身份证号:" + dt_jcxx.Rows[0]["F_SFZH"].ToString() + "&科室:" + dt_jcxx.Rows[0]["F_sjks"].ToString() + "&病理诊断:" + dt_jcxx.Rows[0]["F_blzd"].ToString() + "&报告医生:" + dt_jcxx.Rows[0]["F_bgys"].ToString() + "&复诊医生:" + dt_jcxx.Rows[0]["F_FZYS"].ToString() + "&审核医生:" + dt_jcxx.Rows[0]["F_SHYS"].ToString() + "&报告日期:" + dt_jcxx.Rows[0]["F_bgrq"].ToString() + "&审核日期:" + dt_jcxx.Rows[0]["F_spare5"].ToString(); } //// 补充审核 if (bglx == "bc") { dt_bc = aa.GetDataTable( "select * from T_BCBG where F_BLH='" + getblh + "' and F_BC_BGZT='已审核'and F_BC_BGXH='" + bgxh + "'", "bcbg"); if (dt_bc == null) { if (msg == "1") { MessageBox.Show("连接数据库异常"); } return("0"); } if (dt_bc.Rows.Count <= 0) { if (msg == "1") { MessageBox.Show("T_BCBG查询数据异常"); } return("0"); } yw = "病理号:" + dt_jcxx.Rows[0]["f_blh"].ToString() + "&补充报告:" + bgxh + "&性别:" + dt_jcxx.Rows[0]["F_XB"].ToString() + "&年龄:" + dt_jcxx.Rows[0]["F_nl"].ToString() + "&住院号:" + dt_jcxx.Rows[0]["F_zyh"].ToString() + "&门诊号:" + dt_jcxx.Rows[0]["F_mzh"].ToString() + "&身份证号:" + dt_jcxx.Rows[0]["F_SFZH"].ToString() + "&科室:" + dt_jcxx.Rows[0]["F_sjks"].ToString() + "&病理诊断:" + dt_bc.Rows[0]["F_BCZD"].ToString() + "&报告医生:" + dt_bc.Rows[0]["F_bc_bgys"].ToString() + "&复诊医生:" + dt_bc.Rows[0]["F_bc_FZYS"].ToString() + "&审核医生:" + dt_bc.Rows[0]["F_bc_SHYS"].ToString() + "&报告日期:" + dt_bc.Rows[0]["F_bc_bgrq"].ToString() + "&审核日期:" + dt_bc.Rows[0]["F_bc_spare5"].ToString(); } ///// 小冰冻审核 if (bglx == "bd") { dt_bd = aa.GetDataTable( "select * from T_BDBG where F_BLH='" + getblh + "' and F_BD_BGZT='已审核' and F_BD_BGXH='" + bgxh + "'", "bcbg"); if (dt_bd == null) { if (msg == "1") { MessageBox.Show("连接数据库异常"); } return("0"); } if (dt_bd.Rows.Count <= 0) { if (msg == "1") { MessageBox.Show("T_BDBG查询数据异常"); } return("0"); } yw = "病理号:" + dt_jcxx.Rows[0]["f_blh"].ToString() + "&冰冻报告:" + bgxh + "&性别:" + dt_jcxx.Rows[0]["F_XB"].ToString() + "&年龄:" + dt_jcxx.Rows[0]["F_nl"].ToString() + "&住院号:" + dt_jcxx.Rows[0]["F_zyh"].ToString() + "&门诊号:" + dt_jcxx.Rows[0]["F_mzh"].ToString() + "&身份证号:" + dt_jcxx.Rows[0]["F_SFZH"].ToString() + "&科室:" + dt_jcxx.Rows[0]["F_sjks"].ToString() + "&病理诊断:" + dt_bd.Rows[0]["F_BdZD"].ToString() + "&报告医生:" + dt_bd.Rows[0]["F_bd_bgys"].ToString() + "&复诊医生:" + dt_bd.Rows[0]["F_bd_FZYS"].ToString() + "&审核医生:" + dt_bd.Rows[0]["F_bd_SHYS"].ToString() + "&报告日期:" + dt_bd.Rows[0]["F_bd_bgrq"].ToString(); } if (yw.Trim() == "") { if (msg == "1") { MessageBox.Show("数字签名内容为空"); } return("0"); } #endregion if (isb64yw == "1") { yw = changebase64(yw); } #region 签名 try { ////签名 if (WithTSA) { b64SignVal = NETCAPKIv4.signPKCS7WithTSA(yw, usapurl, havcount); //时间戳签名 } else { b64SignVal = NETCAPKIv4.signNETCA(yw, havcount, userPwd); //不带时间戳签名 } } catch (Exception ee1) { if (msg == "1") { MessageBox.Show("签名失败:" + ee1.Message); } return("0"); } if (b64SignVal == "") { if (msg == "1") { MessageBox.Show("签名失败"); } return("0"); } #endregion #region 验签 try { string signTime = ""; oCert = NETCAPKIv4.verifyPKCS7(yw, b64SignVal, true, ref signTime); } catch (Exception ee2) { if (msg == "1") { MessageBox.Show("验签失败:" + ee2.Message); } return("0"); } if (oCert == null) { if (msg == "1") { MessageBox.Show("验签失败"); } return("0"); } #endregion // #region 验证证书 // // if (isVerify) // { // try // { // bool bFlag = NETCAPKIv4.VerifyCert(usapurl, svrcertb64, 1, oCert); //再验证证书 // if (!bFlag) // { // MessageBox.Show("签名证书验证失败"); // return "0"; // } // } // catch (Exception ee3) // { // if (msg == "1") // MessageBox.Show("签名证书验证失败:" + ee3.Message); // return "0"; // } // } // // #endregion // 签字 } catch (Exception ex) { MessageBox.Show("签名异常:" + ex.Message); return("0"); } #region 签名完成,写数据库 string errmsg = ""; int x = aa.ExecuteSQL( "insert into T_SZQM(F_BLBH,F_BLH,F_BGLX,F_BGXH,F_CZY,F_YW,F_SignCert,F_SignData,F_QZRQ) values('" + blbh + "','" + getblh + "','" + bglx + "','" + bgxh + "','" + yhmc + "','" + yw + "','" + oCert.ToString() + "','" + b64SignVal.ToString() + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "')"); if (debug == "1") { if (x >= 1) { MessageBox.Show("写入T_CAXX完成"); } else { MessageBox.Show("写入T_CAXX失败:" + errmsg); } } #endregion if (f.ReadString("ca", "hqkeytp", "0").Trim().Replace("\0", "").Trim() == "1") { #region 获取签字图片 string szqmlj = ZGQClass.GetSZ("view", "szqmlj", @"\\127.0.0.1\pathqc\rpt-szqm\YSBMP\"); try { IPDFSign iPDFSign = new PDFSign(); //选择证书 iPDFSign.SelectCert("netca", 0); IUtilTool iUtilTool = new UtilTool(); //传入选中的签名证书的base64编码 string CertBase64 = iPDFSign.SignCertBase64Encode; if (CertBase64.Trim() == "") { if (msg == "1") { MessageBox.Show("获取签名证书的base64编码失败"); } return("0"); } try { //log.WriteMyLog("CertBase64:"+CertBase64); byte[] image = iUtilTool.GetImageFromDevicByCert(CertBase64); try { MemoryStream memoryStream = new MemoryStream(image, 0, image.Length); memoryStream.Write(image, 0, image.Length); //转成图片 Image ii = Image.FromStream(memoryStream); log.WriteMyLog("szqmlj:" + szqmlj); ii.Save(szqmlj + yhmc + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp); } catch (Exception ee4) { if (msg == "1") { MessageBox.Show("保存签名图片失败:" + ee4.Message); } return("0"); } string pdfszqz = ZGQClass.GetSZ("CA", "pdfszqz", "1"); if (pdfszqz == "1") { #region 生成pdf string blh = getblh; try { if (bglx == "") { bglx = "cg"; } if (bgxh == "") { bgxh = "1"; } string bgzt = ""; string filename = dt_jcxx.Rows[0]["F_SPARE5"].ToString(); if (bglx.ToLower() == "bd") { bgzt = dt_bd.Rows[0]["F_BD_BGZT"].ToString(); filename = dt_bd.Rows[0]["F_BD_bgrq"].ToString(); } if (bglx.ToLower() == "bc") { bgzt = dt_bc.Rows[0]["F_BC_BGZT"].ToString(); filename = dt_bc.Rows[0]["F_Bc_SPARE5"].ToString(); } if (bglx.ToLower() == "cg") { bgzt = dt_jcxx.Rows[0]["F_BGZT"].ToString(); filename = dt_jcxx.Rows[0]["F_SPARE5"].ToString(); } if (bgzt == "已审核") { try { filename = blh.Trim() + "_" + bglx.ToLower() + "_" + bgxh + "_" + DateTime.Parse(filename.Trim()).ToString("yyyyMMddHHmmss") + ".pdf"; } catch { filename = blh.Trim() + "_" + bglx.ToLower() + "_" + bgxh + ".pdf"; } string ml = DateTime.Parse(dt_jcxx.Rows[0]["F_SDRQ"].ToString()).ToString("yyyyMM"); string pdfpath = ""; string rptpath = ZGQClass.GetSZ("ca", "rptpath", "rpt").Replace("\0", "").Trim(); string scpdffs = f.ReadString("ca", "scpdffs", "1").Replace("\0", "").Trim(); ZGQ_PDFJPG zgq = new ZGQ_PDFJPG(); string message = ""; string filePath = ""; //生成PDF string ErrMsg = ""; // log.WriteMyLog("filename="+filename); bool pdf1 = zgq.CreatePDFJPG(blh, bglx, bgxh, ref filename, rptpath, ZGQ_PDFJPG.type.PDF, ref ErrMsg); log.WriteMyLog("filename=" + filename); if (!pdf1) { MessageBox.Show("生成PDF失败,请重新审核\r\n" + ErrMsg); DeleteTempFile(blh); return("0"); } if (!File.Exists(filename)) { MessageBox.Show("生成PDF失败,请重新审核"); DeleteTempFile(blh); return("0"); } filePath = filename; if (zgq.UpPDF(blh, filename, ml, 0, ref errmsg, ref pdfpath)) { if (debug == "1") { log.WriteMyLog("上传PDF成功"); } filename = filePath.Substring(filePath.LastIndexOf('\\') + 1); ZGQClass.BGHJ(blh, "上传PDF", "审核", "上传PDF成功:" + ml + "\\" + filename, "ZGQJK", "上传PDF"); aa.ExecuteSQL("delete T_BG_PDF where F_BLBH='" + blbh + "'"); aa.ExecuteSQL( "insert into T_BG_PDF(F_BLBH,F_BLH,F_BGLX,F_BGXH,F_ML,F_FILENAME,F_FilePath,F_PDFLX) values('" + blbh + "','" + blh + "','" + bglx + "','" + bgxh + "','" + ml + "\\" + blh + "','" + filename + "','" + pdfpath + "','')"); } else { MessageBox.Show("上传签字PDF失败,请重新审核\r\n" + errmsg); ZGQClass.BGHJ(blh, "上传PDF", "审核", "上传PDF失败:" + errmsg, "ZGQJK", "上传PDF"); } //上传pdf iPDFSign.SetImage(image); iPDFSign.RenderMode = 3; iPDFSign.SrcFileName = filePath; string szqm_filename = filePath.Replace(".pdf", "_szqm.pdf"); iPDFSign.DestFileName = szqm_filename; int xPos = int.Parse(ZGQClass.GetSZ("ca", "xPos", "350").Replace("\0", "").Trim()); int yPos = int.Parse(ZGQClass.GetSZ("ca", "yPos", "100").Replace("\0", "").Trim()); int width = int.Parse(ZGQClass.GetSZ("ca", "width", "80").Replace("\0", "").Trim()); int height = int.Parse(ZGQClass.GetSZ("ca", "height", "40").Replace("\0", "").Trim()); iPDFSign.SignPosition(1, xPos, yPos, width, height); if (File.Exists(szqm_filename)) { //上传签字的pdf if (zgq.UpPDF(blh, szqm_filename, ml, 0, ref errmsg, ref pdfpath)) { if (debug == "1") { log.WriteMyLog("上传签字PDF成功"); } szqm_filename = szqm_filename.Substring(szqm_filename.LastIndexOf('\\') + 1); ZGQClass.BGHJ(blh, "上传PDF", "审核", "上传签字PDF成功:" + ml + "\\" + szqm_filename, "ZGQJK", "上传PDF"); aa.ExecuteSQL("delete T_BG_PDF_CA where F_BLBH='" + blbh + "'"); log.WriteMyLog("insert into T_BG_PDF_CA(F_BLBH,F_BLH,F_BGLX,F_BGXH,F_ML,F_FILENAME,F_FilePath,F_PDFLX) values('" + blbh + "','" + blh + "','" + bglx + "','" + bgxh + "','" + ml + "\\" + blh + "','" + szqm_filename + "','" + pdfpath + "','szqm')"); aa.ExecuteSQL( "insert into T_BG_PDF_CA(F_BLBH,F_BLH,F_BGLX,F_BGXH,F_ML,F_FILENAME,F_FilePath,F_PDFLX) values('" + blbh + "','" + blh + "','" + bglx + "','" + bgxh + "','" + ml + "\\" + blh + "','" + szqm_filename + "','" + pdfpath + "','szqm')"); } else { MessageBox.Show("上传签字PDF失败,请重新审核\r\n" + errmsg); ZGQClass.BGHJ(blh, "上传签字PDF", "审核", "上传PDF失败:" + errmsg, "ZGQJK", "上传PDF"); } } else { MessageBox.Show("PDF签字失败,请重新审核"); } DeleteTempFile(blh); return("1"); } else { MessageBox.Show("报告未审核"); return("0"); } } catch (Exception ee10) { MessageBox.Show("生成PDF异常,请重新审核\r\n" + ee10.Message); DeleteTempFile(blh); return("0"); } #endregion } } catch (Exception ee5) { MessageBox.Show("获取签名图像异常,请重新审核\r\n" + ee5.Message); return("0"); } } catch (Exception ee6) { MessageBox.Show("获取签名证书失败,请重新审核\r\n" + ee6.Message); return("0"); } #endregion } if (debug == "1") { MessageBox.Show("签字完成"); } return("1"); } #endregion #region 取消审核 if (type == "QXSH") { if (f.ReadString("ca", "qxshyz", "0").Trim().Replace("\0", "").Trim() == "1") { return(YZKEY(msg, yhmc, yhbh)); } return("1"); } #endregion #region 取消签字 if (type == "QXQZ") //&& (bglx == "BC" || bglx == "BD") { aa.ExecuteSQL("delete from T_SZQM where F_BLBH='" + blbh + "' "); aa.ExecuteSQL("delete from T_BG_PDF where F_BLBH='" + blbh + "' "); return("1"); } #endregion return("1"); }
private void btnBindUser_Click(object sender, EventArgs e) { #region 保存前验证 if (string.IsNullOrEmpty(txtUserCode.Text.Trim())) { MessageBox.Show("用户编码不能为空!"); return; } if (string.IsNullOrEmpty(txtImgPath.Text.Trim())) { MessageBox.Show("图片路径不能为空!"); return; } var caUserName = txtCaName.Text.Trim(); if (string.IsNullOrEmpty(txtCaId.Text.Trim() + caUserName)) { MessageBox.Show("CAId和Ca用户名不能为空,请先点击读取!"); } var dtYh = GetYHXX(txtUserCode.Text.Trim()); if (dtYh.Rows.Count == 0) { MessageBox.Show($"没有找到用户:" + txtUserCode.Text.Trim()); return; } var dbUserName = dtYh.Rows[0]["F_YHMC"].ToString().Trim(); if (dbUserName != caUserName) { DialogResult r = MessageBox.Show($"用户姓名验证失败!\r\nUKey姓名为:{dbUserName};朗珈用户姓名为:{caUserName}\r\n是否继续绑定?", "", MessageBoxButtons.YesNo); if (r != DialogResult.Yes) { return; } } #endregion #region 把CaId保存到用户表BY2字段 odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); string sql = $"update t_yh set F_YH_BY2='{txtCaId.Text.Trim()}' where f_yhm='{txtUserCode.Text.Trim()}' "; try { aa.ExecuteSQL(sql); } catch (Exception ex) { MessageBox.Show("绑定失败,执行sql时出现异常:" + ex); return; } finally { aa.Close(); } #endregion #region 获取ca签名图片并上传到指定路径,图片名称为 ca用户姓名.bmp IPDFSign iPDFSign = new PDFSign(); //选择证书 iPDFSign.SelectCert("netca", 0); IUtilTool iUtilTool = new UtilTool(); //传入选中的签名证书的base64编码 string CertBase64 = iPDFSign.SignCertBase64Encode; if (CertBase64.Trim() == "") { MessageBox.Show("获取签名证书的base64编码失败"); return; } try { //log.WriteMyLog("CertBase64:"+CertBase64); byte[] image = iUtilTool.GetImageFromDevicByCert(CertBase64); try { MemoryStream memoryStream = new MemoryStream(image, 0, image.Length); memoryStream.Write(image, 0, image.Length); //转成图片 Image ii = Image.FromStream(memoryStream); ii.Save(txtImgPath.Text + caUserName + ".bmp", ImageFormat.Bmp); } catch (Exception ee4) { MessageBox.Show("保存签名图片失败:" + ee4.Message); return; } } catch (Exception ex1) { MessageBox.Show("保存签名图片时出现异常:" + ex1); return; } #endregion MessageBox.Show("绑定成功!"); }
public void TestMethod1() { string path = @"C:\Users\Moinul\Desktop\certificate\SignTemplate_1.pdf"; byte[] bytes = System.IO.File.ReadAllBytes(path); List <PDFSign> PDFSignList = new List <PDFSign>(); PDFSign pdf = new PDFSign(); //byte[] signbytes=new byte[1]; ObjectPool <PDFSign> objectPool = new ObjectPool <PDFSign>(); PDFSign a, a1, a2; a = objectPool.Rent() as PDFSign; //a1 = objectPool.Rent() as PDFSign; //a2 = objectPool.Rent() as PDFSign; //a._executed = true; //a1._executed = true; //a2._executed = true; //Thread t1 = new Thread(() => //{ // Thread.Sleep(10000); // a = objectPool.Rent() as PDFSign; // Thread.Sleep(10000); // a._executed = true; // Thread.Sleep(10000); //}); //Thread t2 = new Thread(() => //{ // Thread.Sleep(10000); // a1 = objectPool.Rent() as PDFSign; // Thread.Sleep(10000); // a1._executed = true; // Thread.Sleep(10000); //}); //t1.Start(); //t2.Start(); //Parallel.For(0, 100, (i, state) => { // //Console.WriteLine(i); if (i == 50) state.Stop(); // a = objectPool.Rent() as PDFSign; // //if (objectPool.IsEmptyPool()) // if(!a._executed) // { // signbytes=a.sign(bytes, "This Document has been certified by National Board of Revenue", "Dhaka, Bangladesh"); // } // else { // signbytes=a.sign(bytes); // } // File.WriteAllBytes(@"C:\Users\Moinul\Desktop\HP\SignTemplate"+i+"_"+DateTime.Now.Minute+"_"+DateTime.Now.Millisecond+".pdf", signbytes); //}); //int largest = arr[0]; //Parallel.ForEach(Partitioner.Create(0, arr.Length), () => arr[0], (range, loop, subtotal)=> //{ // Your stuff //}); //Parall for(int i=0; i <100; i++){ // var a = objectPool.Rent() as PDFSign; // if (objectPool.IsEmptyPool()) // { // signbytes=a.sign(bytes, "This Document has been certified by National Board of Revenue", "Dhaka, Bangladesh"); // } // else { // signbytes=a.sign(bytes); // } // File.WriteAllBytes(@"C:\Users\DELL\Desktop\HP\SignTemplate.pdf", signbytes); //} byte[] signbytes = pdf.sign(bytes, "This Document has been certified by Moinul For Test Purpose", "Dhaka, Bangladesh"); //byte[] signbytes = pdf.mangosign(bytes, "\\Content\\PDF\\"); File.WriteAllBytes(@"C:\Users\Moinul\Desktop\certificate\SignTemplate_sign.pdf", signbytes); }
public byte[] GetSignedPDF(byte[] data, SignInfo signInfo) { PDFSign pdfSign = new PDFSign(); return(pdfSign.sign(data, signInfo.Reason, signInfo.location)); }