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:\Users\Administrator\Desktop\圖紙\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:\Users\Administrator\Desktop\圖紙\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;
        }
    }
}

效果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM