分享

C#/VB.NET 给 PDF 文档添加水印

 長生閣 2022-08-20 发布于安徽

本文将介绍如何使用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 文档添加水印


添加文本水印

添加文本水印时,需要先绘制文本并设置文本格式如字体、颜色及排列方式等,然后将其添加到页面作为水印。

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")

C# 给 PDF 文档添加水印

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多