开发者社区> eiceblue> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

C# 给PDF文件添加水印

简介: 水印种类及功能介绍     PDF水印分为两种:文本水印和图片水印。文本水印一般被用在商业领域,提醒读者该文档是受版权保护的,其他人不能抄袭或者免费使用。除了这个特征,水印还可以用来标记这个文档的一些基本状态信息,例如是草稿状态还是最终版本?图片水印是美化PDF文件的一个很好的选择,它可以用多彩的、独特的图片来作为PDF文件的背景。
+关注继续查看
 水印种类及功能介绍

    PDF水印分为两种:文本水印和图片水印。文本水印一般被用在商业领域,提醒读者该文档是受版权保护的,其他人不能抄袭或者免费使用。除了这个特征,水印还可以用来标记这个文档的一些基本状态信息,例如是草稿状态还是最终版本?图片水印是美化PDF文件的一个很好的选择,它可以用多彩的、独特的图片来作为PDF文件的背景。那么,怎样用编程的方式给PDF文件添加水印呢?有很多种实现方法,其中一种最快最容易的办法也许是用第三方软件,例如Spire.PDF。本文会阐述怎样用免费的第三方软件Spire.PDF来给PDF文件添加文本水印和图片水印。

免费版Spire.PDF软件介绍

    免费版Spire.PDF软件是一款免费的独立的PDF控件,它提供给编程者一系列丰富的PDF功能,例如读,写,新建,编辑,操作和通过C#或VB.NET转化PDF文件等。请注意,免费版仅支持10页的PDF文件和三页的转换功能。

如何得到?

    首先,请从E-iceblue website网站上下载并安装Spire.PDF。安装完成后,你就可以利用“SampleCenter”和界面帮助快速开始了,其中有很多代码片段和详细的应用程序功能介绍。

下面就列举一些怎样给PDF文件添加图片水印和文本水印的代码片段。我把它分为两部分。一部分是图片水印,另一部分是文本水印。 

 

第一部分:添加图片水印

    首先,准备一张你想设置为PDF文件水印的图片。其次,我们只需要调用Image.FromFile(stringfilename)方法来加载图片,非常简单、方便。然后,设置PDF图片背景。

代码如下:

步骤1:创建一个新的PDF实例。然后导入PDF文件 

PdfDocument pdf = new PdfDocument();  
pdf.LoadFromFile("sample.pdf");

步骤2:获取PDF文件的第一页 

PdfPageBase page = pdf.Pages[0];

步骤3:导入图片并把它设置为PDF文件的背景

Image img = Image.FromFile("img.jpg");  
page.BackgroundImage = img;

步骤4:保存文件为PDF格式,命名为"ImageWaterMark.pdf"

pdf.SaveToFile("ImageWaterMark.pdf");

添加了图片水印的效果图如下: 


图片 1: 图片水印

 

第二部分:添加文本水印

    和添加图片水印不同的是,添加文本水印更为复杂。为了最好的匹配PDF页面,我们需要在PDF中制作出水印文本,然后设置文本的字体,颜色,位置和文本格式。以上两种功能均可以通过调用这种方法来快速实现:DrawString(strings, PdfFontBase font, PdfBrush brush, float x, float y, PdfStringFormat format).下面是代码片段: 

步骤1:创建一个新的PDF实例。然后导入PDF文件。 

PdfDocument pdf= new PdfDocument();
pdf.LoadFromFile("sample.pdf");

步骤2:获取PDF文件的第一页

PdfPageBase page = pdf.Pages[0];

步骤3:添加文本水印到文件的第一页,设置文本格式

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);  
brush.Graphics.DrawString("Draft Version", new PdfFont(PdfFontFamily.Helvetica, 24), PdfBrushes.Blue,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));

步骤4:保存文件为PDF格式,命名为"TextWaterMark.pdf"

pdf.SaveToFile("TextWaterMark.pdf");
添加了文本水印的效果图如下:


图片 2: 文本水印

 

总结

 

    虽然有很多文章介绍了不用第三方软件就可以用编程的方式来添加水印的方法,但这里我仍然使用了免费版的Spire.PDF软件,因为除了水印功能以外,我还需要使用新建,转换,打印和保护PDF等功能,而这个软件全部支持这些功能。它工作的很好,并且大大的提高了我的工作效率。如果你也感兴趣的话,不妨试试它。

    感谢您的浏览,希望本文能给您带来一定的帮助。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python3,10行代码,给pdf文件去水印,再也不用花费冤枉钱了。
Python3,10行代码,给pdf文件去水印,再也不用花费冤枉钱了。
0 0
Python3,2段代码,给pdf文件添加水印,原来watermark还可以这么玩。
Python3,2段代码,给pdf文件添加水印,原来watermark还可以这么玩。
0 0
一日一技:如何批量给PDF添加水印?
一日一技:如何批量给PDF添加水印?
0 0
一行Python代码,给PDF文件添加水印,快速而且免费~python-office自动化办公,YYDS
一行Python代码,给PDF文件添加水印,快速而且免费~python-office自动化办公,YYDS
0 0
Android文档水印之PDF水印
随着移动终端办公化的普及,在Android手机中阅读文档已经是很普遍的事情了,但是有些文档可能是涉及到一些企业机密与敏感的内容,不希望随意扩散出去。为了防止重要的文档被截屏或者拍照而泄露,在文档中加上水印是一种常见的安全措施。
1423 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
yqdh_58c13166275...1510469898.pdf
立即下载
yqdh_58c132e7c7b...1510469536.pdf
立即下载
yqdh_58089d21034...1508750952.pdf
立即下载