Advertisement

C# Spire.PDF 实现pdf文件盖章

阅读量:

通过Spire.PDF实现合同盖章,社区版dll(免费,但是只支持10页以内的pdf文档),也可以直接通过VS管理NuGet包添加dll引用,
收费版直接搜索Spire.PDF安装,免费社区版搜索FreeSpire.PDF安装
在这里插入图片描述

参数定义与调用

复制代码
    string pdfPath = "C:\ Users\ Administrator\ Desktop\ 2月份工作报告.pdf";
    string imagePath = "C:\ Users\ Administrator\ Desktop\ 图片\ 20230314161221.jpg";
    string outputPath = "C:\ Users\ Administrator\ Desktop\ 测试签名文件.pdf";
    CreateSign(pdfPath, imagePath, outputPath, 400, 650);

具体盖章实现

复制代码
    		/// <summary>
        ///  pdf盖章
        ///  Spire.PDF——收费商用版
        ///  FreeSpire.PDF——免费社区版,但只支持10页以内的pdf文件
        /// </summary>
        /// <param name="pdfPath">源Pdf文件地址</param>
        /// <param name="imagePath">盖章图片地址</param>heng'xiang
        /// <param name="outputPath">盖章后重新生成的pdf地址</param>
        /// <param name="driftX">盖章图片横向偏移</param>
        /// <param name="driftY">盖章图片竖向偏移</param>
        /// <returns></returns>
        public static void CreateSign(string pdfPath, string imagePath, string outputPath, float driftX, float driftY)
        {
            //创建一个PdfDocument类对象,并加载PDF文档
            Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument();
            doc.LoadFromFile(pdfPath);
            //文档最后一页
            Spire.Pdf.PdfPageBase page = doc.Pages[doc.Pages.Count - 1];
            //新建一个PdfRubberStampAnnotation对象,指定其注释的位置和大小
            Spire.Pdf.Annotations.PdfRubberStampAnnotation loStamp =
            new Spire.Pdf.Annotations.PdfRubberStampAnnotation(
                new System.Drawing.RectangleF(
                    //盖章偏移
                    new System.Drawing.PointF(driftX, driftY),
                    //盖章图片大小
                    new System.Drawing.SizeF(80, 80))
                );
            //实例化一个PdfAppearance对象,并加载作为印章的图片
            Spire.Pdf.Annotations.Appearance.PdfAppearance loApprearance = new Spire.Pdf.Annotations.Appearance.PdfAppearance(loStamp);
            Spire.Pdf.Graphics.PdfImage image = Spire.Pdf.Graphics.PdfImage.FromFile(imagePath);
            //新建一个PDF模板,并在模板里绘制图片
            Spire.Pdf.Graphics.PdfTemplate template = new Spire.Pdf.Graphics.PdfTemplate(150, 150);
            template.Graphics.DrawImage(image, 0, 0);
            loApprearance.Normal = template;
            loStamp.Appearance = loApprearance;
            //添加印章到PDF文档
            page.AnnotationsWidget.Add(loStamp);
            //保存文档
            doc.SaveToFile(outputPath);
            //直接打开文档
            System.Diagnostics.Process.Start(outputPath);
        }

最终效果图
最终效果图

–仅个人记录,不喜勿喷

全部评论 (0)

还没有任何评论哟~