PDF水印分為兩種:文本水印和圖片水印。文本水印一般被用在商業(yè)領(lǐng)域,提醒讀者該文檔是受版權(quán)保護的,其他人不能抄襲或者免費使用。除了這個特征,水印還可以用來標記這個文檔的一些基本狀態(tài)信息,例如是草稿狀態(tài)還是最終版本?圖片水印是美化PDF文件的一個很好的選擇,它可以用多彩的、獨特的圖片來作為PDF文件的背景。那么,怎樣用編程的方式給PDF文件添加水印呢?有很多種實現(xiàn)方法,其中一種最快最容易的辦法也許是用第三方軟件,例如Spire.PDF。本文會闡述怎樣用免費的第三方軟件Spire.PDF來給PDF文件添加文本水印和圖片水印。
澗西網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,澗西網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為澗西千余家提供企業(yè)網(wǎng)站建設(shè)服務。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務好的澗西做網(wǎng)站的公司定做!
免費版Spire.PDF軟件介紹
免費版Spire.PDF軟件是一款免費的獨立的PDF控件,它提供給編程者一系列豐富的PDF功能,例如讀,寫,新建,編輯,操作和通過C#或VB.NET轉(zhuǎn)化PDF文件等。請注意,免費版僅支持10頁的PDF文件和三頁的轉(zhuǎn)換功能。
如何得到?
首先,請從E-iceblue website網(wǎng)站上下載并安裝Spire.PDF。安裝完成后,你就可以利用“SampleCenter”和界面幫助快速開始了,其中有很多代碼片段和詳細的應用程序功能介紹。
下面就列舉一些怎樣給PDF文件添加圖片水印和文本水印的代碼片段。我把它分為兩部分。一部分是圖片水印,另一部分是文本水印。
第一部分:添加圖片水印
首先,準備一張你想設(shè)置為PDF文件水印的圖片。其次,我們只需要調(diào)用Image.FromFile(stringfilename)方法來加載圖片,非常簡單、方便。然后,設(shè)置PDF圖片背景。
代碼如下:
步驟1:創(chuàng)建一個新的PDF實例。然后導入PDF文件
PdfDocument pdf = new PdfDocument(); ?
pdf.LoadFromFile("sample.pdf");
步驟2:獲取PDF文件的第一頁
PdfPageBase page = pdf.Pages[0];
步驟3:導入圖片并把它設(shè)置為PDF文件的背景
Image img = Image.FromFile("img.jpg"); ?
page.BackgroundImage = img;
步驟4:保存文件為PDF格式,命名為"ImageWaterMark.pdf"
pdf.SaveToFile("ImageWaterMark.pdf");
添加了圖片水印的效果圖如下:
圖片?1:?圖片水印
第二部分:添加文本水印
和添加圖片水印不同的是,添加文本水印更為復雜。為了最好的匹配PDF頁面,我們需要在PDF中制作出水印文本,然后設(shè)置文本的字體,顏色,位置和文本格式。以上兩種功能均可以通過調(diào)用這種方法來快速實現(xiàn):DrawString(strings, PdfFontBase font, PdfBrush brush, float x, float y, PdfStringFormat format).下面是代碼片段:
步驟1:創(chuàng)建一個新的PDF實例。然后導入PDF文件。
PdfDocument pdf= new PdfDocument();
pdf.LoadFromFile("sample.pdf");
步驟2:獲取PDF文件的第一頁
PdfPageBase page = pdf.Pages[0];
步驟3:添加文本水印到文件的第一頁,設(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é)
雖然有很多文章介紹了不用第三方軟件就可以用編程的方式來添加水印的方法,但這里我仍然使用了免費版的Spire.PDF軟件,因為除了水印功能以外,我還需要使用新建,轉(zhuǎn)換,打印和保護PDF等功能,而這個軟件全部支持這些功能。它工作的很好,并且大大的提高了我的工作效率。如果你也感興趣的話,不妨試試它。
VB6.0給已有圖片添加文字可通過定位的Print 方法實現(xiàn)。要將添加文字的位圖儲存為JPG格式文件,需要使用API函數(shù)等實現(xiàn)。
具體步驟:
1)在圖片框加載需要添加文字水印的圖片。
2)使用如下代碼實現(xiàn)添加文字到圖片框。
Private?Sub?CmdEdit_Click()?'修改
Dim?strTxt?As?String
strTxt?=?"風雨無阻?拍攝"
Picture1.FontSize?=?18
Picture1.CurrentY?=?Picture1.ScaleHeight?-?30
Picture1.CurrentX?=?Picture1.ScaleWidth?/?2?-?Picture1.TextWidth(strTxt)?/?2
Picture1.ForeColor?=?vbWhite
Picture1.FontItalic?=?True
Picture1.Print?strTxt
End?Sub
3)將以下API轉(zhuǎn)換圖片格式代碼放置于標準模塊,模塊命名為saveApg。
Option?Explicit
Public?Type?GUID
Data1?As?Long
Data2?As?Integer
Data3?As?Integer
Data4(0?To?7)?As?Byte
End?Type
Public?Type?GdiplusStartupInput
GdiplusVersion?As?Long
DebugEventCallback?As?Long
SuppressBackgroundThread?As?Long
SuppressExternalCodecs?As?Long
End?Type
Public?Type?EncoderParameter
GUID?As?GUID
NumberOfValues?As?Long
type?As?Long
Value?As?Long
End?Type
Public?Type?EncoderParameters
Count?As?Long
Parameter?As?EncoderParameter
End?Type
Public?Declare?Function?GdiplusStartup?Lib?"GDIPlus"?(token?As?Long,?inputbuf?As?GdiplusStartupInput,?ByVal?outputbuf?As?Long)?As?Long
Public?Declare?Function?GdiplusShutdown?Lib?"GDIPlus"?(ByVal?token?As?Long)?As?Long
Public?Declare?Function?GdipCreateBitmapFromHBITMAP?Lib?"GDIPlus"?(ByVal?hbm?As?Long,?ByVal?hpal?As?Long,?Bitmap?As?Long)?As?Long
Public?Declare?Function?GdipDisposeImage?Lib?"GDIPlus"?(ByVal?Image?As?Long)?As?Long
Public?Declare?Function?GdipSaveImageToFile?Lib?"GDIPlus"?(ByVal?Image?As?Long,?ByVal?fileName?As?Long,?clsidEncoder?As?GUID,?encoderParams?As?Any)?As?Long
Public?Declare?Function?CLSIDFromString?Lib?"ole32"?(ByVal?str?As?Long,?id?As?GUID)?As?Long
Public?Declare?Function?GdipCreateBitmapFromFile?Lib?"GDIPlus"?(ByVal?fileName?As?Long,?Bitmap?As?Long)?As?Long
Public?Function?PictureBoxSaveJPG(ByVal?pict?As?StdPicture,?ByVal?fileName?As?String,?Optional?ByVal?quality?As?Byte?=?80)?As?Boolean
Dim?tSI?As?GdiplusStartupInput
Dim?lRes?As?Long
Dim?lGDIP?As?Long
Dim?lBitmap?As?Long
'初始化?GDI+
tSI.GdiplusVersion?=?1
lRes?=?GdiplusStartup(lGDIP,?tSI,?0)
If?lRes?=?0?Then
'從句柄創(chuàng)建?GDI+?圖像
lRes?=?GdipCreateBitmapFromHBITMAP(pict.Handle,?0,?lBitmap)
If?lRes?=?0?Then
Dim?tJpgEncoder?As?GUID
Dim?tParams?As?EncoderParameters
'初始化解碼器的GUID標識
CLSIDFromString?StrPtr("{557CF401-1A04-11D3-9A73-0000F81EF32E}"),?tJpgEncoder
'設(shè)置解碼器參數(shù)
tParams.Count?=?1
With?tParams.Parameter?'?Quality
'得到Quality參數(shù)的GUID標識
CLSIDFromString?StrPtr("{1D5BE4B5-FA4A-452D-9CDD-5DB35105E7EB}"),?.GUID
.NumberOfValues?=?1
.type?=?4
.Value?=?VarPtr(quality)
End?With
'保存圖像
lRes?=?GdipSaveImageToFile(lBitmap,?StrPtr(fileName),?tJpgEncoder,?tParams)
'銷毀GDI+圖像
GdipDisposeImage?lBitmap
End?If
'銷毀?GDI+
GdiplusShutdown?lGDIP
End?If
If?lRes?Then
PictureBoxSaveJPG?=?False
Else
PictureBoxSaveJPG?=?True
End?If
End?Function
4)使用以下代碼實現(xiàn)將加好文字水印圖片保存為jpg格式圖片。
Private?Sub?Command3_Click()?'保存為.jpg圖片
'?設(shè)置“CancelError”為?True
CommonDialog1.CancelError?=?True
On?Error?GoTo?ErrHandler
'?設(shè)置標志
CommonDialog1.Flags?=?cdlOFNHideReadOnly
'?設(shè)置過濾器
CommonDialog1.Filter?=?"JPEG?Files"??"(*.jpg)|*.jpg"
'?指定缺省的過濾器
CommonDialog1.FilterIndex?=?2
'?顯示“打開”對話框
CommonDialog1.ShowSave
'?顯示選定文件的名字
'MsgBox?CommonDialog1.fileName
Set?Picture2.Picture?=?Picture1.Image?'轉(zhuǎn)移Picture1所繪圖為Picture2.Picture賦值
Dim?ret?As?Boolean
ret?=?PictureBoxSaveJPG(Picture2,?CommonDialog1.fileName)?'保存壓縮后的圖片
If?ret?=?False?Then
MsgBox?"保存失敗"
End?If
Exit?Sub
ErrHandler:
'?用戶按了“取消”按鈕
Exit?Sub
End?Sub
我們在給圖片添加水印的時候,也許會想要給其加上圖案水印的情況,好看的圖案比起普通的文字水印,顯得高大上。給圖片加上圖案水印也是許多經(jīng)營網(wǎng)店或者網(wǎng)站的商家所遇到的問題,如果采用手工的方法給一張張圖片加水印,那必然很慢很麻煩,小編就不推薦使用啦。但是有別的方法可以幫你,一次性搞定全部圖片,輕輕松松給圖片加上圖案水印。
想知道嗎?那就趕緊往下看看吧!
借助工具:圖叫獸
給圖片添加圖片水印的操作方法:
第一步、雙擊打開軟件,在左側(cè)選擇“添加水印”
第二步、接著,再選擇添加將需要處理的圖片批量添加進來
第三步、如圖,在這里選擇水印類型為“圖片水印”,然后再點擊此處將水印文件上傳到軟件上
第四步、可設(shè)置水印樣式以及文件導出位置
第五步、最后,點擊“批量轉(zhuǎn)換”即可
第六步、圖片處理過程中請耐心等候,成功后直接打開圖片查看即可。
水印弄在圖片上的方法:
打開美圖app,首先在手機上找到并打開美圖秀秀APP;
美化圖片,在頁面中所指處的“美化圖片”;
點開文字
在頁面中選擇所指處的“文字”;
添加水印,在頁面中選擇處的“水印”,在圖片上添加水印即可。
照片水印主要指的是現(xiàn)代的數(shù)字照片上面留下的一些logo、信息、網(wǎng)址什么的,圖像,聲音,視頻信號等等在里面加了一些數(shù)字信息,這樣是為了版權(quán)保護,當然加入水印也是不能影響原始文件的可讀性以及觀瞻的,水印具有以下幾個特征,首先是證明各位是這個照片的原始主人,或者有的商家為了做宣傳用,也會在照片上增加自己的網(wǎng)址,品牌名字等等。