本文将介绍如何使用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("arial unicode ms", 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("arial unicode ms", 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")