• C# 利用itextsharp、Spire配合使用为pdf文档每页添加水印


    下载类库:

    直接下载

    引入类库

    功能实现

    using iTextSharp.text.pdf;
    using Spire.Pdf;
    using Spire.Pdf.Graphics;
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    using PdfDocument = Spire.Pdf.PdfDocument;
    using PdfFont = Spire.Pdf.Graphics.PdfFont;
    
    namespace ProcessPdfDemo
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Button1_Click(object sender, EventArgs e)
            {
                string fileName = @"C:UsersAdministratorDesktop图纸WH440-H111-F01_111分段结构图.pdf";
                //创建一个新的PDF实例,导入PDF文件            
                PdfDocument pdf = new PdfDocument();
                pdf.LoadFromFile(fileName);
                PdfPageBase pb = pdf.Pages.Add(); //新增一页
                pdf.Pages.Remove(pb); //去除第一页水印
                for (int i = 0; i < GetPdfPageNum(fileName); i++)
                {
                    PdfPageBase page = pdf.Pages[i];                
                    //添加文本水印到文件的第一页,设置文本格式
                    PdfTilingBrush brush = new PdfTilingBrush(new SizeF(page.Canvas.ClientSize.Width / 3, page.Canvas.ClientSize.Height / 3)); //设置每行每列几个水印
                    brush.Graphics.SetTransparency(0.2f); //透明度
                    brush.Graphics.Save();
                    brush.Graphics.TranslateTransform(brush.Size.Width / 2, brush.Size.Height / 2);
                    brush.Graphics.RotateTransform(-45); //旋转角度
                    brush.Graphics.DrawString("Draft Version", new PdfFont(PdfFontFamily.Helvetica, 40), PdfBrushes.Blue, 0, 0, new PdfStringFormat(PdfTextAlignment.Center));
                    brush.Graphics.Restore();
                    brush.Graphics.SetTransparency(1);
                    page.Canvas.DrawRectangle(brush, new RectangleF(new PointF(0, 0), page.Canvas.ClientSize));
                }
                //保存文件
                pdf.SaveToFile(@"C:UsersAdministratorDesktop图纸2222.pdf");
                MessageBox.Show("ok");
            }
            /// <summary>
            /// 获取pdf页数
            /// </summary>
            /// <param name="pdfFile"></param>
            /// <returns></returns>
            public int GetPdfPageNum(string pdfFile)
            {
                PdfReader reader = new PdfReader(pdfFile);
                int iPageNum = reader.NumberOfPages;
                reader.Close(); //不关闭会一直占用pdf资源,对接下来的操作会有影响
                return iPageNum;
            }
        }
    }

    效果

  • 相关阅读:
    007_在线解析json工具
    009_python魔法函数
    008_python列表的传值与传址
    008_python内置语法
    007_Python中的__init__,__call__,__new__
    006_Python 异常处理
    匹配网络设计
    Bessel函数
    system generator 卷积编码器快速设计
    关于非稳恒的电流激励电场
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/11765213.html
Copyright © 2020-2023  润新知