使用itextsharp 在winfrom上先在每一页添加水印再显示pdf
时间: 2023-12-10 18:37:17 浏览: 73
可以按照以下步骤实现:
1. 引用itextsharp库
在项目中引用itextsharp库,可以通过Nuget安装或手动下载添加到项目中。
2. 创建水印
使用itextsharp库创建水印。下面是一个示例代码片段:
```
public void AddWatermark(PdfReader reader, PdfStamper stamper, string watermarkText)
{
PdfContentByte underContent;
BaseFont baseFont = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
PdfGState gState = new PdfGState();
gState.FillOpacity = 0.4F;
gState.StrokeOpacity = 0.4F;
int pageCount = reader.NumberOfPages;
for (int i = 1; i <= pageCount; i++)
{
underContent = stamper.GetUnderContent(i);
underContent.SaveState();
underContent.SetGState(gState);
underContent.BeginText();
underContent.SetFontAndSize(baseFont, 30);
underContent.SetColorFill(BaseColor.LIGHT_GRAY);
underContent.SetTextMatrix(30, 30);
underContent.ShowTextAligned(Element.ALIGN_CENTER, watermarkText, reader.GetPageSize(i).Width / 2, reader.GetPageSize(i).Height / 2, 45);
underContent.EndText();
underContent.RestoreState();
}
}
```
这个方法将在每一页中添加一个水印。
3. 显示PDF
使用itextsharp库将PDF显示在WinForm上。可以通过PDFViewer控件或其他第三方控件来实现。
下面是一个示例代码片段:
```
private void ShowPdf(string filePath)
{
PdfReader reader = new PdfReader(filePath);
PdfStamper stamper = new PdfStamper(reader, new FileStream("output.pdf", FileMode.Create));
AddWatermark(reader, stamper, "WATERMARK TEXT");
stamper.Close();
reader.Close();
// Use PDFViewer control to display PDF
pdfViewer1.DocumentFilePath = "output.pdf";
}
```
这个方法将在每一页添加水印后将PDF显示在PDFViewer控件上。
注意:需要修改代码中的文件路径和水印文本。
阅读全文