C#如何給PDF文件添加水印
水印種類及功能介紹
PDF水印分為兩種:文本水印和圖片水印。文本水印一般被用在商業(yè)領(lǐng)域,提醒讀者該文檔是受版權(quán)保護(hù)的,其他人不能抄襲或者免費(fèi)使用。除了這個(gè)特征,水印還可以用來標(biāo)記這個(gè)文檔
的一些基本狀態(tài)信息,例如是草稿狀態(tài)還是最終版本?圖片水印是美化PDF文件的一個(gè)很好的選擇,它可以用多彩的、獨(dú)特的圖片來作為PDF文件的背景。那么,怎樣用編程的方式給PDF文件
添加水印呢?有很多種實(shí)現(xiàn)方法,其中一種最快最容易的辦法也許是用第三方軟件,例如Spire.PDF。本文會(huì)闡述怎樣用免費(fèi)的第三方軟件Spire.PDF來給PDF文件添加文本水印和圖片水印。
免費(fèi)版Spire.PDF軟件介紹
免費(fèi)版Spire.PDF軟件是一款免費(fèi)的獨(dú)立的PDF控件,它提供給編程者一系列豐富的PDF功能,例如讀,寫,新建,編輯,操作和通過C#或VB.NET轉(zhuǎn)化PDF文件等。請(qǐng)注意,免費(fèi)版僅支
持10頁(yè)的PDF文件和三頁(yè)的轉(zhuǎn)換功能。
如何得到?
首先,請(qǐng)從E-iceblue website網(wǎng)站上下載并安裝Spire.PDF。安裝完成后,你就可以利用“SampleCenter”和界面幫助快速開始了,其中有很多代碼片段和詳細(xì)的應(yīng)用程序功能介紹。
下面就列舉一些怎樣給PDF文件添加圖片水印和文本水印的代碼片段。我把它分為兩部分。一部分是圖片水印,另一部分是文本水印。
第一部分:添加圖片水印
首先,準(zhǔn)備一張你想設(shè)置為PDF文件水印的圖片。其次,我們只需要調(diào)用Image.FromFile(stringfilename)方法來加載圖片,非常簡(jiǎn)單、方便。然后,設(shè)置PDF圖片背景。
代碼如下:
步驟1:創(chuàng)建一個(gè)新的PDF實(shí)例。然后導(dǎo)入PDF文件
PdfDocument pdf = new PdfDocument(); pdf.LoadFromFile("sample.pdf");
步驟2:獲取PDF文件的第一頁(yè)
PdfPageBase page = pdf.Pages[0];
步驟3:導(dǎo)入圖片并把它設(shè)置為PDF文件的背景
Image img = Image.FromFile("img.jpg"); page.BackgroundImage = img;
步驟4:保存文件為PDF格式,命名為"ImageWaterMark.pdf"
pdf.SaveToFile("ImageWaterMark.pdf");
添加了圖片水印的效果圖如下:
圖片 1: 圖片水印
第二部分:添加文本水印
和添加圖片水印不同的是,添加文本水印更為復(fù)雜。為了最好的匹配PDF頁(yè)面,我們需要在PDF中制作出水印文本,然后設(shè)置文本的字體,顏色,位置和文本格式。以上兩種功能均可以通
過調(diào)用這種方法來快速實(shí)現(xiàn):DrawString(strings, PdfFontBase font, PdfBrush brush, float x, float y, PdfStringFormat format).下面是代碼片段:
步驟1:創(chuàng)建一個(gè)新的PDF實(shí)例。然后導(dǎo)入PDF文件。
PdfDocument pdf= new PdfDocument(); pdf.LoadFromFile("sample.pdf");
步驟2:獲取PDF文件的第一頁(yè)
PdfPageBase page = pdf.Pages[0];
步驟3:添加文本水印到文件的第一頁(yè),設(shè)置文本格式
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: 文本水印
總結(jié)
雖然有很多文章介紹了不用第三方軟件就可以用編程的方式來添加水印的方法,但這里我仍然使用了免費(fèi)版的Spire.PDF軟件,因?yàn)槌怂」δ芤酝猓疫€需要使用新建,轉(zhuǎn)換,打印和
保護(hù)PDF等功能,而這個(gè)軟件全部支持這些功能。它工作的很好,并且大大的提高了我的工作效率。如果你也感興趣的話,不妨試試它。
感謝您的瀏覽,希望本文能給您帶來一定的幫助。
上一篇:總結(jié)C#動(dòng)態(tài)調(diào)用WCF接口的兩種方法
欄 目:C#教程
下一篇:C#組件系列 你值得擁有的一款Excel處理神器Spire.XLS
本文標(biāo)題:C#如何給PDF文件添加水印
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6249.html
您可能感興趣的文章
- 01-10Extjs4如何處理后臺(tái)json數(shù)據(jù)中日期和時(shí)間
- 01-10asp.net中XML如何做增刪改查操作
- 01-10C#獲取動(dòng)態(tài)生成的CheckBox值
- 01-10C#實(shí)現(xiàn)HTML轉(zhuǎn)WORD及WORD轉(zhuǎn)PDF的方法
- 01-10C#.NET中如何批量插入大量數(shù)據(jù)到數(shù)據(jù)庫(kù)中
- 01-10C#代碼實(shí)現(xiàn)PDF文檔操作類
- 01-10C#連接數(shù)據(jù)庫(kù)的方法
- 01-10C#給圖片添加水印完整實(shí)例
- 01-10解析C#中的常量及如何在C#編程中定義常量
- 01-10C#實(shí)現(xiàn)給圖片加水印的方法


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁(yè)無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
- 01-10WinForm實(shí)現(xiàn)仿視頻 器左下角滾動(dòng)新
- 01-10C#停止線程的方法
- 01-10C#實(shí)現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實(shí)現(xiàn)讀取注冊(cè)表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機(jī)閱讀
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 04-02jquery與jsp,用jquery
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10delphi制作wav文件的方法
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改