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);}}}
}