C# PDF添加骑缝章

许多比较重要的文件比如合同等都有多页,在签订合同时,为了防止造假或更换页面,我们通常会选择给合同文件加盖骑缝章。这篇文章将介绍如何使用.NET PDF组件Spire.PDF for .NET在C#应用程序中实现给PDF合同文件加盖骑缝章。

引用DLL

在使用以下代码前,需要引用Spire.PDF for .NET组件的DLL文件到工程中。官网可以下载最新版的DLL文件,下载地址。此外,也可以通过NuGet Package Manager搜索Spire.PDF for .NET然后点击安装。

示例代码

using System.Collections.Generic;
using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Graphics;

namespace PagingSeal
{
    class Program
    {
        static void Main(string[] args)
        {
            //加载PDF文档 
            PdfDocument doc = new PdfDocument();
            doc.LoadFromFile("Input.pdf");            
                        
            PdfUnitConvertor convert = new PdfUnitConvertor();
            PdfPageBase pageBase = null;

            //获取分割后的印章图片
            Image[] images = GetImage(doc.Pages.Count);
            float x = 0;
            float y = 0;

            //将图片画到PDF页面上的指定位置
            for (int i = 0; i < doc.Pages.Count; i++)
            {
                pageBase = doc.Pages[i];
                x = pageBase.Size.Width - convert.ConvertToPixels(images[i].Width, PdfGraphicsUnit.Point) - 40;
                y = pageBase.Size.Height / 2;
                pageBase.Canvas.DrawImage(PdfImage.FromImage(images[i]), new PointF(x, y));
            }

            //保存PDF文件
            doc.SaveToFile("Output.pdf");
            doc.Close();
        }
        //定义GetImage方法,根据PDF页数分割印章图片
        static Image[] GetImage(int num)
        {
            List lists = new List();
            Image image = Image.FromFile("SealImage.jpg");
            int w = image.Width / num;
            Bitmap bitmap = null;
            for (int i = 0; i < num; i++)
            {
                bitmap = new Bitmap(w, image.Height);
                using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap))
                {
                    g.Clear(Color.White);
                    Rectangle rect = new Rectangle(i * w, 0, w, image.Height);
                    g.DrawImage(image, new Rectangle(0, 0, bitmap.Width, bitmap.Height), rect, GraphicsUnit.Pixel);
                }
                lists.Add(bitmap);
            }
            return lists.ToArray();
        }
    }
}

加盖骑缝章效果:

C# PDF添加骑缝章