c# pdf使用PdfContentByte 添加满屏斜着的水印
时间: 2024-01-27 08:05:05 浏览: 149
要在 PDF 页面上添加满屏斜着的水印,您可以使用 iTextSharp 库中的 PdfContentByte 类。以下是一个示例代码,演示如何在 PDF 页面上添加满屏斜着的水印:
```csharp
using iTextSharp.text;
using iTextSharp.text.pdf;
public class WatermarkHelper
{
public static void AddWatermark(string inputPdfPath, string outputPdfPath, string watermarkText)
{
using (var reader = new PdfReader(inputPdfPath))
{
using (var output = new FileStream(outputPdfPath, FileMode.Create, FileAccess.Write))
{
using (var stamper = new PdfStamper(reader, output))
{
int pageCount = reader.NumberOfPages;
for (int i = 1; i <= pageCount; i++)
{
var pageRectangle = reader.GetPageSize(i);
var watermarkContent = stamper.GetUnderContent(i);
watermarkContent.SaveState();
// 设置字体和大小
BaseFont baseFont = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
watermarkContent.SetFontAndSize(baseFont, 60);
// 设置颜色和透明度
watermarkContent.SetColorFill(BaseColor.LIGHT_GRAY);
watermarkContent.SetGState(new PdfGState { FillOpacity = 0.3f });
// 设置水印文本和位置
watermarkContent.BeginText();
watermarkContent.ShowTextAligned(Element.ALIGN_CENTER, watermarkText, pageRectangle.Width / 2, pageRectangle.Height / 2, 45);
watermarkContent.EndText();
watermarkContent.RestoreState();
}
stamper.Close();
}
}
}
}
}
```
使用示例:
```csharp
string inputFilePath = "input.pdf";
string outputFilePath = "output.pdf";
string watermarkText = "Confidential";
WatermarkHelper.AddWatermark(inputFilePath, outputFilePath, watermarkText);
```
以上代码会将输入的 PDF 文件(`input.pdf`)复制为输出的 PDF 文件(`output.pdf`),并在每个页面上添加一个满屏斜着的水印,水印文本为 "Confidential"。您可以根据需要自定义水印的文本、样式和位置。
阅读全文