C# .net4.5 iTextSharp 打水印 后返回流
时间: 2024-11-22 07:42:29 浏览: 46
在C# .NET 4.5中,iTextSharp是一个流行库用于处理PDF文档。如果你想在PDF上添加水印并将其作为流返回,你可以按照以下步骤操作:
1. 首先,需要安装iTextSharp NuGet包,可以在项目管理器里搜索"iTextSharp"安装。
2. 引入必要的命名空间:
```csharp
using iTextSharp.text;
using iTextSharp.text.pdf;
```
3. 创建一个方法来添加水印并生成PDF流:
```csharp
public Stream AddWatermarkToPdf(Stream originalPdf, string watermarkText)
{
// 创建PDF文档对象和字体对象
PdfReader reader = new PdfReader(originalPdf);
using (FileStream outputStream = new FileStream("watermarked.pdf", FileMode.Create))
{
using (Document document = new Document())
{
PdfStamper stamper = new PdfStamper(reader, outputStream);
// 设置字体和颜色
Font font = new Font(Font.FontFamily.HELVETICA, 12, Font.NORMAL, BaseColor.LIGHT_GRAY);
// 添加水印到每一页
foreach (int page in reader.GetPageIndices())
{
PdfImportedPage importedPage = stamper.GetImportedPage(reader, page);
ColumnText column = new ColumnText(stamper.GetOverContent(page));
float x = 50f; // 水印位置
float y = 750f; // 顶部边缘
// 在PDF页面上绘制文本水印
column.SetSimpleColumn(x, y, float.MaxValue, float.MaxValue, font, new Phrase(watermarkText, font), Element.ALIGN_CENTER);
column.Go();
}
stamper.Close();
}
return outputStream.AsStream(); // 返回生成的流
}
}
```
在这个例子中,我们遍历原始PDF的每一页,然后在每页的中心添加了一个灰色的水印文本。最后将生成的PDF流通过`AsStream()`方法返回。
阅读全文