在PdfiumViewer库的pdfViewer1控件的Paint事件中给每一页pdf添加水印 写一下示例代码,把所有的using引用也带上
时间: 2023-11-27 14:54:26 浏览: 85
给pdf添加水印
5星 · 资源好评率100%
下面是一个示例代码,使用 PdfiumViewer 库的 pdfViewer1 控件在每一页 PDF 上添加水印:
```csharp
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Windows.Forms;
using PdfiumViewer;
// 在 PdfiumViewer 库的 pdfViewer1 控件的 Paint 事件中添加以下代码:
private void pdfViewer1_Paint(object sender, PaintEventArgs e)
{
int pageCount = pdfViewer1.Document.PageCount;
for (int i = 0; i < pageCount; i++)
{
using (var pageImage = pdfViewer1.Render(i, 300, 300, true))
{
using (var graphics = e.Graphics)
{
// 添加水印
var watermarkText = "My Watermark";
var font = new Font("Arial", 24, FontStyle.Bold, GraphicsUnit.Point);
var size = graphics.MeasureString(watermarkText, font);
var brush = new SolidBrush(Color.FromArgb(50, Color.Red));
var xPos = (pageImage.Width - size.Width) / 2;
var yPos = (pageImage.Height - size.Height) / 2;
var point = new PointF(xPos, yPos);
graphics.DrawString(watermarkText, font, brush, point);
// 显示 PDF 页面
var rect = new Rectangle(0, 0, pageImage.Width, pageImage.Height);
graphics.DrawImage(pageImage, rect);
}
}
}
}
```
在上面的代码中,我们使用 `pdfViewer1.Render(i, 300, 300, true)` 方法来渲染每一页 PDF,并将其转换为图片。然后,我们在图片上添加水印,并将其显示在 pdfViewer1 控件的相应区域。注意,添加水印的代码在渲染 PDF 页面的代码之前。
此外,我们还需要在代码开头添加以下命名空间:
```csharp
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Windows.Forms;
using PdfiumViewer;
```
这些命名空间包含了我们在代码中使用的必要类和方法。
阅读全文