C# 在PDF中添加可视化数字签名

2025-11-06 07:08:39

1、在VS中通过Nuget安装Spire.PDF,步骤如图:

C# 在PDF中添加可视化数字签名

C# 在PDF中添加可视化数字签名

C# 在PDF中添加可视化数字签名

2、安装结果:

C# 在PDF中添加可视化数字签名

3、C# 代码:

using Spire.Pdf;

using Spire.Pdf.Graphics;

using Spire.Pdf.Interactive.DigitalSignatures;

using System.Drawing;

using System.Security.Cryptography.X509Certificates;

namespace VisibleDigitalSignature

{

    class Program

    {

        static void Main(string[] args)

        {

            //加载PDF测试文档

            PdfDocument pdf = new PdfDocument();

            pdf.LoadFromFile("test.pdf");

            //获取PDF文档中的第5页

            PdfPageBase page = pdf.Pages[4];

            //在页面中的指定位置添加可视化签名

            X509Certificate2 x509 = new X509Certificate2("cer.pfx", "e-iceblue");

            PdfOrdinarySignatureMaker signatureMaker = new PdfOrdinarySignatureMaker(pdf, x509);

            IPdfSignatureAppearance signatureAppearance = new PdfCustomSignatureAppearance();            

            signatureMaker.MakeSignature("signName_" , page, page.ActualSize.Width-240,page.ActualSize.Height-200,150,150, signatureAppearance);

            //保存文档

            pdf.SaveToFile("VisibleDigitalSignature.pdf", FileFormat.PDF);

            System.Diagnostics.Process.Start("VisibleDigitalSignature.pdf");

            pdf.Close();   

            

        }

        public class PdfCustomSignatureAppearance : IPdfSignatureAppearance

        {

            public void Generate(PdfCanvas g)

            {

                float fontSize = 15;

                PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", fontSize), true);

                float lineHeight = fontSize; g.DrawString("Sign Here:", font, PdfBrushes.Black, new PointF(0, 0));

                g.DrawImage(PdfImage.FromFile("sign.png"), new PointF(20, 20));

            }

        }

    }

}

4、数字签名效果:

C# 在PDF中添加可视化数字签名

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢