当前位置:
首页 > Python基础教程 >
-
C#教程之C# 在PDF中绘制动态图章
我们知道,动态图章,因图章中的时间、日期可以动态的生成,因而具有较强的时效性。在本篇文章中将介绍通过C#编程在PDF中绘制动态图章的方法,该方法可自动获取当前系统登录用户名、日期及时间信息并生成图章。
使用工具
- Spire.PDF for .NET
注:下载安装后,注意在程序中添加引用Spire.PDF.dll(dll文件可在安装路径下的Bin文件夹中获取)
C#代码示例(供参考)
步骤 1 :添加using指令
using Spire.Pdf; using Spire.Pdf.Annotations; using Spire.Pdf.Annotations.Appearance; using Spire.Pdf.Graphics; using System; using System.Drawing;
步骤 2 :创建文档,加载测试文件
//创建PdfDocument对象 PdfDocument doc = new PdfDocument(); //加载现有PDF文档 doc.LoadFromFile("sample.pdf");
步骤 3 :获取需要添加动态图章的页面
PdfPageBase page = doc.Pages[1];
步骤 4 :创建印章模板、字体、画刷等
//创建模板对象 PdfTemplate template = new PdfTemplate(120, 60); //创建字体 PdfCjkStandardFont font1 = new PdfCjkStandardFont(PdfCjkFontFamily.SinoTypeSongLight, 16f, PdfFontStyle.Bold | PdfFontStyle.Italic); PdfTrueTypeFont font2 = new PdfTrueTypeFont(new Font("宋体", 10f), true); //创建单色画刷和渐变画刷 PdfSolidBrush brush = new PdfSolidBrush(Color.Red); RectangleF rect = new RectangleF(new PointF(0, 0), template.Size); PdfLinearGradientBrush gradientBrush = new PdfLinearGradientBrush(rect, Color.White, Color.White, PdfLinearGradientMode.Horizontal); //创建圆角矩形路径 int CornerRadius = 10; PdfPath path = new PdfPath(); path.AddArc(template.GetBounds().X, template.GetBounds().Y, CornerRadius, CornerRadius, 180, 90); path.AddArc(template.GetBounds().X + template.Width - CornerRadius, template.GetBounds().Y, CornerRadius, CornerRadius, 270, 90); path.AddArc(template.GetBounds().X + template.Width - CornerRadius, template.GetBounds().Y + template.Height - CornerRadius, CornerRadius, CornerRadius, 0, 90); path.AddArc(template.GetBounds().X, template.GetBounds().Y + template.Height - CornerRadius, CornerRadius, CornerRadius, 90, 90); path.AddLine(template.GetBounds().X, template.GetBounds().Y + template.Height - CornerRadius, template.GetBounds().X, template.GetBounds().Y + CornerRadius / 2);
步骤 5 :应用模板
//在模板上画圆角矩形路径,并用渐变色填充 template.Graphics.DrawPath(gradientBrush, path); //在模板上画圆角矩形路径,并用红色填充路径 template.Graphics.DrawPath(PdfPens.Red, path);
步骤 6 :绘制印章上的文字、用户名、当前日期时间等
String s1 = "已审阅\n"; String s2 = System.Environment.UserName + "行政处 \n" + DateTime.Now.ToString("F"); template.Graphics.DrawString(s1, font1, brush, new PointF(5, 5)); template.Graphics.DrawString(s2, font2, brush, new PointF(2, 28));
步骤 7 :添加印章到PDF页面指定位置
//创建PdfRubberStampAnnotation对象,并指定其位置和大小 PdfRubberStampAnnotation stamp = new PdfRubberStampAnnotation(new RectangleF(new PointF(page.ActualSize.Width - 300, 380), template.Size)); //创建PdfApperance对象,并将模板应用为一般状态 PdfAppearance apprearance = new PdfAppearance(stamp); apprearance.Normal = template; //在印章上应用PdfApperance对象(即样式) stamp.Appearance = apprearance; //将印章添加到PdfAnnotation集合 page.AnnotationsWidget.Add(stamp);
步骤 8 :保存并打开文档
doc.SaveToFile("output.pdf", FileFormat.PDF); System.Diagnostics.Process.Start("output.pdf");
完成以上步骤后,调试运行程序,生成文档。在生成的文档中,文末已添加了动态的图章,如下图所示:
全部代码:
View Code
以上是本次关于C#在PDF文档中绘制动态图章的方法介绍,在前面的文章中介绍了添加印章的到PDF文档的方法,有需要也可以查阅该文档。
感谢阅读。
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式