本文将介绍如何使用Spire.PDF组件给PDF文档添加图片和文本水印。
添加图片水印
Spire.Pdf.PdfPageBase类提供了一个属性BackgroundImage,用户可以通过该属性来获取或设置当前页面的背景图,除此之外还可以通过BackgroundRegion属性设置背景图的位置及大小,最终达到图片水印的效果。
C#
//加载PDF文档
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("Spire.Presentation.pdf");
//获取PDF文档的第一页
PdfPageBase page = pdf.Pages[0];
//获取图片并将其设置为页面的背景图
Image img = Image.FromFile("Logo.png");
page.BackgroundImage = img;
//指定背景图的位置和大小
page.BackgroundRegion = new RectangleF(200, 200, 200, 200);
//保存文档
pdf.SaveToFile("ImageWaterMark.pdf");
VB.NET
'加载PDF文档
Dim pdf As New PdfDocument()
pdf.LoadFromFile("Spire.Presentation.pdf")
'获取PDF文档的第一页
Dim page As PdfPageBase = pdf.Pages(0)
'获取图片并将其设置为页面的背景图
Dim img As Image = Image.FromFile("Logo.png")
page.BackgroundImage = img
'指定背景图的位置和大小
page.BackgroundRegion = New RectangleF(200, 200, 200, 200)
'保存文档
pdf.SaveToFile("ImageWaterMark.pdf")
添加文本水印
添加文本水印时,需要先绘制文本并设置文本格式如字体、颜色及排列方式等,然后将其添加到页面作为水印。
C#
//加载PDF文档
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("Spire.Presentation.pdf");
//获取PDF文档的第一页
PdfPageBase page = pdf.Pages[0];
//绘制文本,设置文本格式并将其添加到页面
PdfTilingBrush brush = new PdfTilingBrush(new SizeF(page.Canvas.ClientSize.Width / 2, page.Canvas.ClientSize.Height / 3));
brush.Graphics.SetTransparency(0.3f);
brush.Graphics.Save();
brush.Graphics.TranslateTransform(brush.Size.Width / 2, brush.Size.Height / 2);
brush.Graphics.RotateTransform(-45);
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("宋体", 20f), true);
//绘制水印文本时,可通过以下三种方式设置水印文本颜色
//方法1,通过指定PdfBrushes画刷颜色
brush.Graphics.DrawString("草稿", font, PdfBrushes.Red, 0, 0, new PdfStringFormat(PdfTextAlignment.Center));
/*//方法2,通过RGB值指定颜色
PdfRGBColor rgb = new PdfRGBColor();
rgb.R = 199;
rgb.G = 21;
rgb.B = 112;
PdfSolidBrush brush2 = new PdfSolidBrush(rgb);
brush.Graphics.DrawString("草稿", font, brush2, 0, 0, new PdfStringFormat(PdfTextAlignment.Center));*/
/*//方法3,通过指定颜色值
Color color = System.Drawing.ColorTranslator.FromHtml("#2E8B57");
PdfSolidBrush brush3 = new PdfSolidBrush(color);
brush.Graphics.DrawString("草稿", font, brush3, 0, 0, new PdfStringFormat(PdfTextAlignment.Center));*/
brush.Graphics.Restore();
brush.Graphics.SetTransparency(1);
page.Canvas.DrawRectangle(brush, new RectangleF(new PointF(0, 0), page.Canvas.ClientSize));
//保存文档
pdf.SaveToFile("TextWaterMark.pdf");
VB.NET
'加载PDF文档
Dim pdf As New PdfDocument()
pdf.LoadFromFile("Spire.Presentation.pdf")
'获取PDF文档的第一页
Dim page As PdfPageBase = pdf.Pages(0)
'绘制文本,设置文本格式并将其添加到页面
Dim brush As New PdfTilingBrush(New SizeF(page.Canvas.ClientSize.Width / 2, page.Canvas.ClientSize.Height / 3))
brush.Graphics.SetTransparency(0.3F)
brush.Graphics.Save()
brush.Graphics.TranslateTransform(brush.Size.Width / 2, brush.Size.Height / 2)
brush.Graphics.RotateTransform(-45)
Dim font As New PdfTrueTypeFont(New Font("宋体", 20F), True)
'绘制水印文本时,可通过以下三种方式设置水印文本颜色
'方法1,通过指定PdfBrushes画刷颜色
brush.Graphics.DrawString("草稿", font, PdfBrushes.Red, 0, 0, New PdfStringFormat(PdfTextAlignment.Center))
'方法2,通过RGB值指定颜色
'PdfRGBColor rgb = new PdfRGBColor();
'rgb.R = 199;
'rgb.G = 21;
'rgb.B = 112;
'PdfSolidBrush brush2 = new PdfSolidBrush(rgb);
'brush.Graphics.DrawString("草稿", font, brush2, 0, 0, new PdfStringFormat(PdfTextAlignment.Center));
'方法3,通过指定颜色值
'Color color = System.Drawing.ColorTranslator.FromHtml("#2E8B57");
'PdfSolidBrush brush3 = new PdfSolidBrush(color);
'brush.Graphics.DrawString("草稿", font, brush3, 0, 0, new PdfStringFormat(PdfTextAlignment.Center));
brush.Graphics.Restore()
brush.Graphics.SetTransparency(1)
page.Canvas.DrawRectangle(brush, New RectangleF(New PointF(0, 0), page.Canvas.ClientSize))
'保存文档
pdf.SaveToFile("TextWaterMark.pdf")