使用itextsharp 在winfrom上先在每一页添加水印再显示pdf
时间: 2023-12-10 22:38:05 浏览: 100
C#使用iTextSharp添加PDF水印
可以使用 iTextSharp 库在每一页添加水印并且显示 PDF,步骤如下:
1. 引入 iTextSharp 库。
2. 在窗体加载时,使用 iTextSharp 库读取 PDF 文件,并在每一页上添加水印。
3. 显示带有水印的 PDF 文件。
下面是一个示例代码:
```c#
using iTextSharp.text;
using iTextSharp.text.pdf;
private void Form1_Load(object sender, EventArgs e)
{
// 读取 PDF 文件
PdfReader reader = new PdfReader("your_pdf_file.pdf");
int pageCount = reader.NumberOfPages;
// 添加水印
for (int i = 1; i <= pageCount; i++)
{
PdfStamper stamper = new PdfStamper(reader, new FileStream("temp.pdf", FileMode.Create));
// 水印文本
string watermarkText = "This is a watermark text";
// 水印字体
BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
Font font = new Font(bf, 32, Font.BOLD, new BaseColor(255, 0, 0, 128));
// 水印位置
Rectangle rect = reader.GetPageSize(i);
float x = rect.Width / 2;
float y = rect.Height / 2;
// 添加水印
PdfContentByte over = stamper.GetOverContent(i);
over.SaveState();
over.SetGState(new PdfGState() { FillOpacity = 0.5f, StrokeOpacity = 0.5f });
over.BeginText();
over.SetFontAndSize(font.BaseFont, font.Size);
over.SetColorFill(font.Color);
over.ShowTextAligned(Element.ALIGN_CENTER, watermarkText, x, y, 45);
over.EndText();
over.RestoreState();
stamper.Close();
}
// 显示 PDF 文件
axAcroPDF1.src = "temp.pdf";
}
```
注意要在窗体上添加一个 ActiveX 控件,名称为 “axAcroPDF1”,用于显示 PDF 文件。
阅读全文