参考:https://blog.csdn.net/ljk126wy/article/details/84299373
采用生成pdf 方式 效果如下:
用adobe acrobat 制作一个模板 创建相关的动态表单 定义变量
用iTextSharp pdf 模板生成
部分代码如下:
iTextSharp.text.pdf.PdfReader pdfReader = new iTextSharp.text.pdf.PdfReader("模板pdf路径");
PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(”生成的pdf路径“, FileMode.OpenOrCreate));
AcroFields pdfFormFields = pdfStamper.AcroFields;
pdfStamper.FormFlattening = true;
//BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
//BaseFont simheiBase = BaseFont.CreateFont(@"C:WindowsFontssimhei.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
BaseFont simheiBase = BaseFont.CreateFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
pdfFormFields.AddSubstitutionFont(simheiBase);
#region 添加图片印章
//1.读取图片
iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(”图章路径“);
Document document = new Document();
// 通过域名获取所在页和坐标,左下角为起点
//模板1 坐标
//float x = document.PageSize.Width - 295;
//float y = document.PageSize.Height - 480; 70
//lsx模板
float x = document.PageSize.Width - 160;
// float y = document.PageSize.Height - 480; 50
// 获取操作的页面
PdfContentByte under = pdfStamper.GetOverContent(1);
// 根据域的大小缩放图片
image.ScaleToFit(100, 60);
// image.ScaleToFit(document.PageSize.Width - 350, document.PageSize.Width - 400);
// 添加图片
image.SetAbsolutePosition(x, 50);
under.AddImage(image);
//float percentage = 1;
////这里都是图片最原始的宽度与高度
//float resizedWidht = image.Width;
//float resizedHeight = image.Height;
//////这里用计算出来的百分比来缩小图片
//image.ScalePercent(percentage * 100);
////让图片的中心点与页面的中心店进行重合
//// image.SetAbsolutePosition(doc.PageSize.Width / 2 - resizedWidht / 2, doc.PageSize.Height / 2 - resizedHeight / 2);
//pdfStamper.Writer.Add(image);
#endregion
//pdfStamper.AcroFields.SetField("Name", "李朝强同学:");
//pdfStamper.AcroFields.SetField("Content", "恭喜您在全国中小学电脑制作活动中,荣获三等奖");
//pdfStamper.AcroFields.SetField("Company", "某某单位");
//pdfStamper.AcroFields.SetField("Time", "二零一九年十二月十五日");
//pdfStamper.AcroFields.SetField("Number", "证书编号:A00015800016737000000580001");
pdfStamper.Close();
pdfReader.Close();