C# .net4.5 iTextSharp PdfStamper 使用 MemoryStream 打文字水印
时间: 2024-11-22 15:42:14 浏览: 13
在.NET 4.5版本中,iTextSharp是一个用于处理PDF文件的强大库,PdfStamper则是它的一个组件,专门用于对PDF进行水印操作。如果你想要在MemoryStream上添加文字水印,你可以按照以下步骤操作:
1. 首先,你需要安装iTextSharp库,如果尚未安装,可以使用NuGet包管理器添加`iTextSharp.text`和`iTextSharp.text.pdf`。
```csharp
using iTextSharp.text;
using iTextSharp.text.pdf;
```
2. 创建一个MemoryStream来存储PDF内容,并读取原始PDF到这个流中。
```csharp
MemoryStream inputStream = new MemoryStream(); // 假设你已经有了原始PDF的数据
using (var pdfReader = new PdfReader(inputStream))
{
// ... 其他操作
}
```
3. 使用PdfStamper创建一个新的PDF写入器,将原始PDF的内容复制到新的内存流中,并添加文字水印。
```csharp
using (var document = new Document(pdfReader.GetPageSizeWithRotation(0)))
{
using (var memoryStream = new MemoryStream())
{
using (var stampWriter = new PdfStamper(pdfReader, memoryStream))
{
// 添加字体到文档
var font = FontFactory.GetFont(Font.FontFamily.HELVETICA, 12, Font.NORMAL);
// 创建文本工具
var textTool = new ColumnText(stampWriter.GetOverContent(1));
// 设置行高、列宽等属性
float x = 50f; // 水印位置,单位为mm
float y = 750f; // PDF顶部
textTool.SetSimpleColumn(x, y, 500f, 100f); // 宽度和高度
// 添加水印文字
textTool.AddText("文字水印", font);
textTool.CloseColumn();
}
// 写入最终PDF到内存流
memoryStream.Seek(0, SeekOrigin.Begin);
}
}
```
4. 最后,你可以选择保存这个包含水印的新MemoryStream,或者继续进一步处理。
阅读全文