C# .net4.5 iTextSharp pdf 打水印 后返回 字节数组
时间: 2024-11-22 20:41:48 浏览: 27
在C# .NET 4.5中,iTextSharp是一个流行的PDF处理库,用于创建、编辑和操作PDF文件。若想给PDF添加水印并将其转换为字节数组返回,可以按照以下步骤操作:
1. 首先,需要安装iTextSharp NuGet包,可以在项目管理器中找到并安装:iTextsharp.text 和 iTextsharp.text.pdf。
2. 引入所需的命名空间:
```csharp
using iTextSharp.text;
using iTextSharp.text.pdf;
```
3. 创建一个水印文本和图像(如果需要),然后定义一个方法添加水印:
```csharp
public byte[] AddWatermarkToPdf(PdfDocument document, string watermarkText, byte[] watermarkImage)
{
// 如果有文字水印
var font = new Font(Font.FontFamily.HELVETICA, 16, Font.NORMAL);
var painter = new PdfStamper(document, new FileStream("temp.pdf", FileMode.Create));
// 添加文字水印
var textState = new TextState();
textState.SetFont(font);
painter.DirectContent.AddAnnotation(new PdfStampAnnot(painter.StampPosition, textState), 1f);
painter.FormattedText(watermarkText, 0f, null);
// 如果有图片水印
if (watermarkImage != null)
{
var imageFilter = Image.getInstance(watermarkImage);
var imageXObject = new XObject(imageFilter);
painter.StampImageAt(imageXObject, 10, 10); // 设置位置
}
painter.Close(); // 关闭pdfStamper
document.Close(); // 关闭PdfDocument
// 返回包含水印的PDF内容作为字节数组
return File.ReadAllBytes("temp.pdf");
}
```
这个方法接收一个`PdfDocument`对象,以及文字水印字符串和图片字节数组,然后将水印应用到PDF上,并保存为临时文件。最后读取临时文件的内容作为字节数组返回。
阅读全文
相关推荐















