1

I have rendered my aspx page to pdf successfully using ITextSharp. Now i want to add watermark logo in background off PDF file please help me out i have been stuck into this.

Following is my code for export to pdf

private void ShowPdf(string s)
    {
        Response.ClearContent();
        Response.ClearHeaders();
        Response.AddHeader("Content-Disposition", "inline;filename=" + s);
        Response.ContentType = "application/pdf";
        Response.WriteFile(s);
        Response.Flush();
        Response.Clear();
    }
    public void PrepareControlForPDF()
    {
        MemoryStream mem = new MemoryStream();
        StreamWriter twr = new StreamWriter(mem);
        HtmlTextWriter myWriter = new HtmlTextWriter(twr);
        divApplicantDetails.RenderControl(myWriter);
        myWriter.Flush();
        //  myWriter.Dispose();
        StreamReader strmRdr = new StreamReader(mem);       
        strmRdr.BaseStream.Position = 0;
        string pageContent = strmRdr.ReadToEnd();
        //CreatePDFDocument(strmRdr);
        //strmRdr.Dispose();
        ///mem.Dispose();
        CreatePDFDocument(pageContent);
        //writer.Write(pageContent);
    
    }
    public void CreatePDFDocument(string strHtml)
    {
        string filename =  ""+System.DateTime.Now.Day+"AppLetter.pdf";
        //          if (System.IO.File.Exists(Server.MapPath("../Pdf") + "/" + filename))
        //          {
        //              System.IO.File.Delete(Server.MapPath("../Pdf") + "/" + filename);
        //          }
        string strFileName = Server.MapPath("../Pdf") + "/" + filename;

        Document document = new Document();
        try
        {
            PdfWriter.GetInstance(document, new FileStream(strFileName, FileMode.Create));
            StringReader se = new StringReader(strHtml);
            MemoryStream ms = new MemoryStream();
            ms.Write(System.Text.Encoding.ASCII.GetBytes(strHtml), 0, System.Text.Encoding.ASCII.GetBytes(strHtml).Length);
            //ms.Position = 0;
            StreamReader sr = new StreamReader(new MemoryStream(new System.Text.ASCIIEncoding().GetBytes(strHtml)));
            sr.BaseStream.Position = 0;
            HTMLWorker obj = new HTMLWorker(document);
        
            document.Open();

            obj.Parse(se);
        }
        finally
        {
            document.Close();
        }
    }
Wenfang Du
  • 8,804
  • 9
  • 59
  • 90
  • possible duplicate of [How to add image background to pdf for every page?](http://stackoverflow.com/questions/14812955/how-to-add-image-background-to-pdf-for-every-page) – mkl Feb 26 '14 at 12:44

1 Answers1

0

I think you can achieve by creating a new class and implementing the IPdfPageEvent interface... refer here

Community
  • 1
  • 1
shanish
  • 1,964
  • 12
  • 35
  • 62