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 Good Luck. 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
Yes, Naimish and arithforu are the same users as me, I had problem while registering on the site, so I created naimish, after which arithforu worked fine, so posted it, on next naimish's account started working fine, so decided not to use arithforu and to use naimish as my proflie. About http://forums.asp.net/p/1348029/2744846.aspx Please see that that topic has been posted by me only, my username there is naimish only. This code has been developed by me only in my project, if someone wants clarification can contact me for ruther details. Thanks.
Moved to Articles section and also try using only one account as use of 2 accounts simultaneously is not allowed.
Yes, as I said, I have decided to use naimish instead of arithforu, you can delete arithforu if you want. Thanks.
Yes, I saw your name on ASP.NET site but didn't notice on MSDN Forum btw, I didn't knew about this iTestsharp. Now I can use it in my application. haha Thanks:2thumbsup
Welcome Buddy, nice to see your positive reply. Thanks a lot. Please also check out my new article, which I am going to write now on, Add Password In PDF
Nomination for article of the month - Jun 2009 Started. Nominate this article for Article of the month - Jun 2009
i have ude this code in my page . page run but watermark is not added in pdf. please help m. my code PdfReader pdfReader = new PdfReader(Server.MapPath("321.pdf")); PdfStamper stamp = new PdfStamper(pdfReader, new System.IO.FileStream(Server.MapPath("watermark.pdf"), System.IO.FileMode.Create)); iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(Server.MapPath("AIPL-watermark.jpg")); img.SetAbsolutePosition(100, 100); for (int j = 1; j < pdfReader.NumberOfPages; j++) { PdfContentByte waterMark = stamp.GetUnderContent(1); waterMark.AddImage(img); } stamp.FormFlattening = true; stamp.Close(); pdfReader.Close();
hey mate great code, I wanted to use it in one of project that creates reports of user tracking data with company name as the watermark on the report.
It was completely new for me and I loved learning this new technique. I am goint to try this for sure. Thanks for sharing such nice resource.