C# 在PDF中绘制动态图章

我们知道,动态图章,因图章中的时间、日期可以动态的生成,因而具有较强的时效性。在本篇文章中将介绍通过C#编程在PDF中绘制动态图章的方法,该方法可自动获取当前系统登录用户名、日期及时间信息并生成图章。

使用工具

  • Spire.PDF for .NET
    注:下载安装后,注意在程序中添加引用Spire.PDF.dll(dll文件可在安装路径下的Bin文件夹中获取)

    C#代码示例(供参考)

    【C#】

using Spire.Pdf;
using Spire.Pdf.Annotations;
using Spire.Pdf.Annotations.Appearance;
using Spire.Pdf.Graphics;
using System;
using System.Drawing;

namespace PDF动态图章
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建PdfDocument对象
            PdfDocument doc = new PdfDocument();

            //加载现有PDF文档
            doc.LoadFromFile("sample.pdf");

            //获取要添加动态印章的页面
            PdfPageBase page = doc.Pages[1];

            //创建模板对象
            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);

            //在模板上画圆角矩形路径,并用渐变色填充
            template.Graphics.DrawPath(gradientBrush, path);
            //在模板上画圆角矩形路径,并用红色填充路径
            template.Graphics.DrawPath(PdfPens.Red, path);

            //在模板上绘制印章文字、系统用户名、日期
            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));

            //创建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);

            //保存文档
            doc.SaveToFile("output.pdf", FileFormat.PDF);
            System.Diagnostics.Process.Start("output.pdf");
        }
    }
}

完成代码后,调试运行程序,生成文档。在生成的文档中,文末已添加了动态的图章,如下图所示:

以上是本次关于C#在PDF文档中绘制动态图章的方法介绍。

感谢阅读。

(本文完)

原文地址:http://blog.51cto.com/eiceblue/2165529

时间: 2024-10-06 21:01:30

C# 在PDF中绘制动态图章的相关文章

Java 处理PDF图章(印章)——图片图章、动态图章

图章(印章)是一种在合同.票据.公文等文件中表明法律效应.部门机关权威的重要指示物,常见于各种格式的文件.文档中.对于纸质文档可以手动盖章,但对于电子文档,则需要通过特定的方法来实现.本篇文档分享通过Java代码在PDF文档中添加图章的方法.内容将分两部分介绍: 1. 添加图片图章.即通过加载现有的图章(以图片形式),添加到PDF指定页面位置 2. 添加动态图章.即加载PDF文档,并在动态的添加印章内容,包括印章字样.日期.时间.经办人.组织名称等. 使用工具:Free Spire.PDF fo

如何在html5的canvas画布中绘制gif动态图片

我们都知道如何在html5的canvas画布上绘制静态图片(jpeg, png等),直接用canvas中的drawImage方法即可,那么如何绘制动态图片(gif)? 相信大家都知道动态图片之所以动态,是因为它是由很多图片按一定的帧数顺序播放而成的,因此我们是否也可以模拟这样的帧数,每隔一定的时间重新 绘制图片,就能画出动态图片呢?答案当然是YES.下面就是我自己测试的一个例子,代码如下: 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 &l

pyqt中使用matplotlib绘制动态曲线

一.项目背景: 看了matplotlib for python developers这本书,基本掌握了在pyqt中显示曲线的做法,于是自己写一个. 二.需求描述: 1)X轴显示时间点,显示长度为1分钟,每一秒钟绘制一个点,X轴长度超过1分钟,则左移1秒刻度,实现动态效果 2)Y轴显示随机变化的数值,1-100 三.准备工作 1环境:python3.3,eric5,pyqt4 四.开始动手: 使用Eric创建新项目: 在设计编码前期主要用到Eric的两个窗口:源码和窗体浏览器,类似delphi.

如何把CAD中绘制的图形导出为PDF格式?

如何把CAD中绘制的图形导出为PDF格式?现在随着科技的进步,越来越多的小伙伴们开始慢慢的接触到CAD这个建筑行业,但是对于才开始接触到CAD的小伙伴们来说绘图是非常困难的,比如说我们在CAD编辑器中编辑完的图纸都是dwg格式的,这样不利用我们进行查看,那就需要把CAD图纸的格式进行转换.如何把CAD中绘制的图形导出为PDF格式? 第一步:在浏览器中搜索迅捷CAD编辑器,点击下载安装最新版本的CAD编辑器,下载完成后,鼠标双击打开迅捷CAD编辑器,软件打开之后,进入到编辑器的操作界面,如下图所示

Java 在PDF文档中绘制图形

本篇文档将介绍通过Java编程在PDF文档中绘制图形的方法.包括绘制矩形.椭圆形.不规则多边形.线条.弧线.曲线.扇形等等.针对方法中提供的思路,也可以自行变换图形设计思路,如菱形.梯形或者组合图形等. 使用工具:Free Spire.PDF for Java(免费版) Jar文件导入: 步骤1:将安装包中lib文件夹下的两个文件复制到程序中新建的文件夹中(这里在程序中可新建一个文件夹并命名为Lib) 步骤2:复制文件后,将两个添加引用到程序:选中这两个jar文件,点击鼠标右键,选择"Build

PDF创建及动态转换控件activePDF Server

activePDF Server控件可以方便而快捷的在您的企业应用程序或者Web应用程序中添加PDF创建及动态转换功能.支持多线程PDF产生,进行颜色管理,字体嵌入,安全设置等. 具体功能: 自动PDF转换 无论是采用COM或者.NET,您都可以方便得在您的应用程序中设置activePDF Server组件,并可以选择由activePDF动态生成的虚拟打印机.您无需担心在您的程序中无法选择打印机,您只需调用SetPrinterAsDefault方法便可以立即开启虚拟打印机生成PDF.只需一次性设

PDF创建及动态转换控件程序包ActivePDF Portfolio

ActivePDF Portfolio是将4个activePDF最优秀的服务器产品捆绑成一个价格适中的控件程序包.它提供了开发一个完整的服务器端的PDF解决方案所需的一切. 具体功能: activePDF Portfolio包含4个activePDF最优秀的服务器产品,它包含有使得PDF的部署变得易于使用的所有工具,同时节省35%的花销 activePDF Server 可以方便而快捷的在您的企业应用程序或者Web应用程序中添加PDF创建及动态转换功能.支持多线程PDF产生,进行颜色管理,字体嵌

使用Adobe Acrobat X Pro在PDF中添加文字和图片

在pdf中添加文字: 使用右侧“工具”>“内容”>“添加或编辑文本框”来打开“打字机”工具栏.单击pdf中的区域即可添加文字. 修改文字的字体和大小: 添加文字时,文字的字体和大小变灰,不能设置添加文字的字体.解决办法:输入完文字后,按ESC或者点击“选择对象”退出文字编辑状态,然后再确认在“添加或编辑文本框”状态双击刚刚添加的文字,全选,这时候浮动的“打字机工具”工具栏中的字体设置变为可用. 文字部分详见官方帮助 添加图片: 1.可以直接先将图片复制到剪贴板,然后在pdf中直接粘贴,不过这种

【MFC】MFC绘制动态曲线,用双缓冲绘图技术防闪烁

摘自:http://zhy1987819.blog.163.com/blog/static/841427882011614103454335/ MFC绘制动态曲线,用双缓冲绘图技术防闪烁 2011-07-14 10:34:54|  分类: 学习笔记 |  标签:双缓冲绘图技术  mfc  动态曲线   |举报 |字号 订阅 先上效果图 随着时间的推移,曲线向右平移,同时X轴的时间坐标跟着更新.一.如何绘制动态曲线. 所谓动画,都是一帧一帧的图像连续呈现在用户面前形成的.所以如果你掌握了如何绘制静