天天看點

C# 給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");      

添加了圖檔水印的效果圖如下: 

C# 給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");      

添加了文本水印的效果圖如下:

C# 給PDF檔案添加水印

圖檔 2: 文本水印

總結

    雖然有很多文章介紹了不用第三方軟體就可以用程式設計的方式來添加水印的方法,但這裡我仍然使用了免費版的Spire.PDF軟體,因為除了水印功能以外,我還需要使用建立,轉換,列印和保護PDF等功能,而這個軟體全部支援這些功能。它工作的很好,并且大大的提高了我的工作效率。如果你也感興趣的話,不妨試試它。

    感謝您的浏覽,希望本文能給您帶來一定的幫助。