参考: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:\Windows\Fonts\simhei.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();

 
 
 
 
 
 

最新文章

  1. linux命令-dd {拷贝并替换}
  2. MVC5-10 ModleBinder那点事
  3. [KOJ95603]全球奥运
  4. js 中json字符串转化json对象
  5. linux C++ 获取文件绝对路径
  6. Oracle 11g EM安全证书问题无法访问的解决办法
  7. Linux新手学堂 Crontab命令的语法
  8. JSON初探
  9. Postman编程
  10. CSS3--2D&3D的使用
  11. G - Supermarket
  12. tornado-版本迁移工具alembic
  13. 动态加载jar包(二)
  14. cmd下查看应用端口情况
  15. hasura graphql 角色访问控制
  16. PICT工具一键生成正交试验用例
  17. splash启动速度优化
  18. ejabberd学习2
  19. 关于阿里云ECS Centos 5/6/7 Linux Glibc库严重安全漏洞修复方法
  20. Quicksort------代码之美

热门文章

  1. 几种常见排序算法的基本介绍,性能分析,和c语言实现
  2. Linux 线程实现机制分析 Linux 线程实现机制分析 Linux 线程模型的比较:LinuxThreads 和 NPTL
  3. 010.MFC_Progress
  4. Nmap基本使用
  5. mybatis 的 dao 接口跟 xml 文件里面的 sql 是如何建立关系的?一步步解析
  6. 从0开发3D引擎(一):开篇
  7. $CF1063B\ Labyrinth$ $01$最短路/$01BFS$
  8. centos下MySQL登录1045问题解决
  9. HBase学习笔记(四)—— 架构模型
  10. 02_css3.0 前端长度单位 px em rem vm vh vm pc pt in 你真的懂了吗?