在iText中,使用C#为PDF文档添加水印可以通过以下步骤实现:
-
首先,确保已经安装了iTextSharp库。如果没有安装,可以通过NuGet包管理器进行安装。
-
创建一个C#控制台应用程序项目,并引入必要的命名空间:
using System; using System.IO; using iTextSharp.text; using iTextSharp.text.pdf;
- 编写一个添加水印的方法:
public static void AddWatermark(string inputFile, string outputFile, string watermarkText)
{
// 读取输入PDF文件
PdfReader reader = new PdfReader(inputFile);
// 创建一个PDF文档对象
Document document = new Document();
// 创建一个PdfCopy对象,用于将文档复制到新的PDF文件中
PdfCopy copy = new PdfCopy(document, new FileStream(outputFile, FileMode.Create));
// 打开文档
document.Open();
// 遍历输入PDF的每一页
for (int i = 1; i <= reader.NumberOfPages; i++)
{
// 获取当前页
PdfImportedPage page = copy.GetImportedPage(reader, i);
// 创建一个PdfContentByte对象,用于在页面上绘制内容
PdfContentByte canvas = copy.DirectContent;
// 设置水印字体和颜色
Font font = new Font(FontFamily.HELVETICA, 48, FontStyle.NORMAL, BaseColor.GRAY);
// 在页面上绘制水印文本
canvas.BeginText();
canvas.SetFontAndSize(font, watermarkText);
canvas.ShowTextAligned(TextAlignment.CENTER, watermarkText, 500, 700, 45);
canvas.EndText();
// 将当前页添加到新的PDF文件中
copy.AddPage(page);
}
// 关闭文档和PDF副本
document.Close();
copy.Close();
reader.Close();
}
- 在主方法中调用
AddWatermark
方法,传入输入文件、输出文件和水印文本:
public static void Main(string[] args)
{
string inputFile = "path/to/input.pdf";
string outputFile = "path/to/output.pdf";
string watermarkText = "Watermark";
AddWatermark(inputFile, outputFile, watermarkText);
}
现在,运行程序后,输入PDF文件将添加水印并保存到输出文件中。