PDF添加水印Watermark

发布于:2025-03-08 ⋅ 阅读:(31) ⋅ 点赞:(0)
using PdfSharp.Drawing;
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Watermark
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string input = @"C:\Users\Administrator\Desktop\PDF\XXXX.pdf";
            AddWatermarkToDocument(input, input, "AAAAAAAA");
        }



        private void AddWatermarkToDocument(string inputPdf, string outputPdf, string watermarkText)
        {
            // 打开输入 PDF 文件
            using (PdfDocument document = PdfReader.Open(inputPdf, PdfDocumentOpenMode.Modify))
            {
                foreach (PdfPage page in document.Pages)
                {
                    // 创建XGraphics对象用于绘制内容
                    using (XGraphics canvas = XGraphics.FromPdfPage(page, XGraphicsPdfPageOptions.Append))
                    {
                        // 创建字体(确保系统中有该字体或使用支持嵌入的字体)
                        XFont font = new XFont("Arial", 40, XFontStyleEx.Bold);

                        // 计算水印位置(右下角,带边距)
                        XSize textSize = canvas.MeasureString(watermarkText, font);
                        double margin = 50; // 边距50单位
                        double xPosition = page.Width - textSize.Width - margin;
                        double yPosition = page.Height - textSize.Height - margin;

                        // 设置水印颜色和透明度(使用ARGB)
                        XColor color = XColor.FromArgb(128, 0, 0, 0); // 50%透明度的黑色

                        // 绘制水印文本
                        canvas.DrawString(watermarkText, font, XBrushes.Gray, // 或者使用自定义颜色:new XSolidBrush(color)
                            new XPoint(xPosition, yPosition),
                            XStringFormats.Default
                        );
                    }
                }

                // 保存修改后的 PDF 文件
                document.Save(outputPdf);
            }
        }
    }
}


网站公告

今日签到

点亮在社区的每一天
去签到