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