- Add Reference of iTextSharp.dll
- btnAddWaterMark_Click is a button name.
- AddWatermarkImage is a method name.
- Enter Input File's Path in input
- Enter Output File's Path in output
- Enter Image's Path in water
Code:
Private Sub btnAddWaterMark_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddWaterMark.Click
Dim input As String
Dim output As String
Dim water As String
If txtPath.Text = "" Or txtimgpath.Text = "" Or txtoutpath.Text = "" Then
MessageBox.Show("Please Enter Required Data", "Required Data Missing")
Else
input = txtPath.Text
water = txtimgpath.Text
output = txtoutpath.Text
AddWatermarkImage(input, output, water)
End If
End Sub
Public Shared Sub AddWatermarkImage(ByVal sourceFile As String, ByVal outputFile As String, ByVal watermarkImage As String)
Dim reader As iTextSharp.text.pdf.PdfReader = Nothing
Dim stamper As iTextSharp.text.pdf.PdfStamper = Nothing
Dim img As iTextSharp.text.Image = Nothing
Dim underContent As iTextSharp.text.pdf.PdfContentByte = Nothing
Dim rect As iTextSharp.text.Rectangle = Nothing
Dim X, Y As Single
Dim pageCount As Integer = 0
Try
If System.IO.File.Exists(sourceFile) Then
reader = New iTextSharp.text.pdf.PdfReader(sourceFile)
rect = reader.GetPageSizeWithRotation(1)
stamper = New iTextSharp.text.pdf.PdfStamper(reader, New System.IO.FileStream(outputFile, IO.FileMode.Create))
img = iTextSharp.text.Image.GetInstance(watermarkImage)
If img.Width > rect.Width OrElse img.Height > rect.Height Then
img.ScaleToFit(rect.Width, rect.Height)
X = (rect.Width - img.ScaledWidth) / 2
Y = (rect.Height - img.ScaledHeight) / 2
Else
X = (rect.Width - img.Width) / 2
Y = (rect.Height - img.Height) / 2
End If
img.SetAbsolutePosition(X, Y)
pageCount = reader.NumberOfPages()
For i As Integer = 1 To pageCount
underContent = stamper.GetUnderContent(i)
underContent.AddImage(img)
Next
stamper.Close()
reader.Close()
Else
MessageBox.Show("File Does Not Exist", "Missing File")
End If
Catch ex As Exception
Throw ex
End Try
End Sub




