iTextSharp 的使用手册 加水印
时间: 2024-01-29 08:38:33 浏览: 147
iTextSharp 是一个开源的 PDF 处理库,它可以让我们直接对 PDF 文件进行编辑、添加水印等操作,以下是使用 iTextSharp 添加水印的步骤:
1. 添加 iTextSharp 库
首先需要下载 iTextSharp 库,并将其添加到项目中。可以直接在 NuGet 中搜索 iTextSharp 进行安装。
2. 创建 PDFReader 和 PDFStamper
使用 iTextSharp,我们可以通过创建一个 PDFReader 对象来读取 PDF 文件,通过创建一个 PDFStamper 对象来对 PDF 文件进行编辑。
```csharp
using iTextSharp.text.pdf;
using iTextSharp.text;
using System.IO;
// 创建一个 PDFReader 对象来读取 PDF 文件
PdfReader reader = new PdfReader("input.pdf");
// 创建一个 PDFStamper 对象来对 PDF 文件进行编辑
PdfStamper stamper = new PdfStamper(reader, new FileStream("output.pdf", FileMode.Create));
```
3. 添加水印
我们可以通过创建一个 PdfContentByte 对象来添加水印到 PDF 文件中。将水印添加到每个页面可以使用循环的方式来实现。
```csharp
// 创建一个 PdfContentByte 对象来添加水印
PdfContentByte content = null;
// 获取 PDF 文件的总页数
int pageCount = reader.NumberOfPages;
// 循环遍历每一页,添加水印
for (int i = 1; i <= pageCount; i++)
{
// 获取 PdfContentByte 对象
content = stamper.GetUnderContent(i);
// 开始写入文本
content.BeginText();
// 设置字体大小
content.SetFontAndSize(BaseFont.CreateFont(BaseFont.HELVETICA_BOLD,
BaseFont.CP1252, BaseFont.NOT_EMBEDDED), 50);
// 设置水印颜色
content.SetColorFill(BaseColor.GRAY);
// 设置旋转角度
content.SetTextMatrix(30, 30);
// 添加水印文本
content.ShowTextAligned(Element.ALIGN_CENTER, "Watermark", 300, 400, 45);
// 结束写入
content.EndText();
}
```
4. 关闭 PDFStamper 和 PDFReader
完成添加水印后,需要关闭 PDFStamper 和 PDFReader。
```csharp
// 关闭 PDFStamper 和 PDFReader
stamper.Close();
reader.Close();
```
完整代码如下:
```csharp
using iTextSharp.text.pdf;
using iTextSharp.text;
using System.IO;
class Program
{
static void Main(string[] args)
{
// 创建一个 PDFReader 对象来读取 PDF 文件
PdfReader reader = new PdfReader("input.pdf");
// 创建一个 PDFStamper 对象来对 PDF 文件进行编辑
PdfStamper stamper = new PdfStamper(reader, new FileStream("output.pdf", FileMode.Create));
// 创建一个 PdfContentByte 对象来添加水印
PdfContentByte content = null;
// 获取 PDF 文件的总页数
int pageCount = reader.NumberOfPages;
// 循环遍历每一页,添加水印
for (int i = 1; i <= pageCount; i++)
{
// 获取 PdfContentByte 对象
content = stamper.GetUnderContent(i);
// 开始写入文本
content.BeginText();
// 设置字体大小
content.SetFontAndSize(BaseFont.CreateFont(BaseFont.HELVETICA_BOLD,
BaseFont.CP1252, BaseFont.NOT_EMBEDDED), 50);
// 设置水印颜色
content.SetColorFill(BaseColor.GRAY);
// 设置旋转角度
content.SetTextMatrix(30, 30);
// 添加水印文本
content.ShowTextAligned(Element.ALIGN_CENTER, "Watermark", 300, 400, 45);
// 结束写入
content.EndText();
}
// 关闭 PDFStamper 和 PDFReader
stamper.Close();
reader.Close();
}
}
```
阅读全文