Hi, This is sailaja. I've been trying to create watermark in PDF using itextsharp. i found code in few sites. finally i'm able to create watermark. but the problem is i added a table with background color to PDF. And the watermark was overwritten by table header. please have a look at attached pdf, then you can understand my issue. I'm using the following code.
public partial class Footer : PdfPageEventHelper
{
public static string HeaderText;
public override void OnEndPage(PdfWriter writer,
iTextSharp.text.Document doc)
{
PdfContentByte under = writer.DirectContentUnder;
BaseFont baseFont = BaseFont.CreateFont(BaseFont.HELVETICA,
BaseFont.WINANSI, BaseFont.EMBEDDED);
PdfGState gstate = new PdfGState();
gstate.FillOpacity=0.3f;
gstate.StrokeOpacity=0.3f;
under.SaveState();
under.SetGState(gstate);
under.BeginText();
under.SetColorFill(BaseColor.RED);
under.SetFontAndSize(baseFont, 60);
under.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "JAZZ
PHARMACEUTICALS", 400, 280, 45);
under.EndText();
under.RestoreState();
Paragraph footer = new Paragraph("Footer Text",
FontFactory.GetFont(FontFactory.TIMES, 9, iTextSharp.text.Font.NORMAL));
footer.Alignment = Element.ALIGN_RIGHT;
PdfPTable footerTbl = new PdfPTable(1);
footerTbl.TotalWidth = 1000;
footerTbl.HorizontalAlignment = Element.ALIGN_RIGHT;
PdfPCell cell = new PdfPCell(footer);
cell.Border = 0;
cell.PaddingLeft = 0;
footerTbl.AddCell(cell);
footerTbl.WriteSelectedRows(0, -1, 25, 30, writer.DirectContent);
}
}
In Controller:
iTextSharp.text.Document document = new
iTextSharp.text.Document(PageSize.LETTER.Rotate(), 8, 8, 10, 25);
PdfWriter writer =
iTextSharp.text.pdf.PdfWriter.GetInstance(document, output);
PdfDestination pdfDest = new PdfDestination(PdfDestination.XYZ,
0, document.PageSize.Height, 1f);
document.Open();
JazzIC.Models.Footer.HeaderText = "ScoreCard-All Territories";
writer.PageEvent = new Footer();
iTextSharp.text.pdf.PdfPTable dataTable = new PdfPTable(new
float[13] { 1.2f, 1.8f, 1.4f, 1.4f, 1.2f, 1.2f, 1.2f, 1.2f, 1.3f, 1.5f, 1.5f,
1.5f, 1.2f });
//code add rows to datatable
document.Add(dataTable);
PdfAction action = PdfAction.GotoLocalPage(1, pdfDest, writer);
writer.SetOpenAction(action);
writer.CloseStream = false;
document.Close();
output.Position = 0;
// return File(output.ToArray(), "application/pdf",
string.Format("AllTerritoriesHO{0}.pdf", DateTime.Now.ToString("ddMMMyyyy")));
return
(HttpContext.Request.UserAgent.ToLower().Contains("ipad") == true ?
File(output.ToArray(), "application/pdf") : File(output.ToArray(),
"application/pdf", string.Format("AllTerritoriesHO{0}.pdf",
DateTime.Now.ToString("ddMMMyyyy"))));
And also i'm exporting few graphs as images which are also overriding Watermark
text.
Please suggest me the solution.
Thanks in advanced.
Sailaja
ScoreCard2013.pdf
Description: Adobe PDF document
------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnnow-d2d
_______________________________________________ iText-questions mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/itext-questions iText(R) is a registered trademark of 1T3XT BVBA. Many questions posted to this list can (and will) be answered with a reference to the iText book: http://www.itextpdf.com/book/ Please check the keywords list before you ask for examples: http://itextpdf.com/themes/keywords.php
