Hello.
Your answer does not help.
If I do not add that chunk of code, the override onOpenDocument function,
etc. won't be called.
> addTableAsHeaderFooter.
onOpenDocument(writer, document);
> addTableAsHeaderFooter.OnStartPage(writer, document);
>
> addTableAsHeaderFooter.onEndPage(writer, document);
> addTableAsHeaderFooter.onCloseDocument(writer, document);
On Mon, Jun 7, 2010 at 7:57 PM, Keith O <kuuji...@hotmail.com> wrote:
>
> Hello,
>
> > Date: Mon, 7 Jun 2010 09:43:44 -0400
> > From: michelleyzh...@gmail.com
> > To: iText-questions@lists.sourceforge.net
> > Subject: [iText-questions] question about table header and onOpenDocument
> >
> > In order to add a table as header, I mimic the code from:
> http://www.1t3xt.info/examples/browse/?page=example&id=395
>
>
> You should follow Bruno's code a little better :)
>
>
> > However, the result I got was not the same as the one on the website. The
> header and the footer only show once on the first page.
> >
> > Can anyone help?
> >
> > Below is my code:
> >
> > main.cs:
> > protected void Button1_Click(object sender, EventArgs e)
> > {
> > string filename = Server.MapPath("Files/FO-CA-Cert-" + "Juarez" + "-G38-"
> + "4" + ".pdf");
> >
> > Document document = new Document(PageSize.A4, 50, 50, 50, 100);
> >
> > PdfWriter writer = PdfWriter.GetInstance(document, new
> FileStream(filename, FileMode.Create));
> > document.Open();
> >
> >
> > AddTableAsHeaderFooter addTableAsHeaderFooter = new
> AddTableAsHeaderFooter();
>
>
> >From here...
>
>
> > addTableAsHeaderFooter.onOpenDocument(writer, document);
> > addTableAsHeaderFooter.OnStartPage(writer, document);
> >
> > addTableAsHeaderFooter.onEndPage(writer, document);
> > addTableAsHeaderFooter.onCloseDocument(writer, document);
>
>
> ^^^^^^^^^^^^^
> To above here is not needed. (not in the example code you referenced)
>
>
> > writer.PageEvent = addTableAsHeaderFooter;
>
>
> ...
>
>
> > AddTableAsHeaderFooter.cs:
>
>
> Although C# is very similar to Java, there **are** some differences. The
> one that got you here is the difference in how Java and C# use/implement
> virtual methods.
>
> When you're having problems like this I would suggest you take a look at
> the iTextSharp source code, in some cases it's the best source of
> documentation.
>
>
> > public class AddTableAsHeaderFooter : PdfPageEventHelper
> >
> > {
> >
> >
> > public PdfTemplate tpl;
> > public BaseFont helv;
> > public PdfPTable headerTable;
>
>
> Then you would have figured out that you need to override all
> 'OnXXX' (note capitalization) methods below here.
>
>
>
>
> > public void onOpenDocument(PdfWriter writer, Document document)
> > {
> >
> >
> > // initializations
> >
> > tpl = writer.DirectContent.CreateTemplate(150, 18);
> > Rectangle rect = new Rectangle(0, 0, 150, 18);
> > rect.BackgroundColor = iTextSharp.text.BaseColor.GRAY;
> > tpl.BoundingBox = rect;
> >
> > tpl.Rectangle(rect);
> > helv = BaseFont.CreateFont("Helvetica", BaseFont.WINANSI, false);
> > // header
> > headerTable = new PdfPTable(1);
> > PdfPCell cell = new PdfPCell(new Paragraph("Header Text"));
> >
> > headerTable.AddCell(cell);
> >
> > headerTable.TotalWidth = document.Right - document.Left;
> > headerTable.LockedWidth = true;
> > }
> >
> > public void onEndPage(PdfWriter writer, Document document)
> > {
> >
> > // Header
> > headerTable.WriteSelectedRows(0, -1, document.LeftMargin,
> > document.Top + headerTable.TotalHeight,
> > writer.DirectContent);
> >
> > // Footer
> > PdfPTable footerTable = new PdfPTable(2);
> > PdfPCell cell1 = new PdfPCell(new Phrase("page " + writer.PageNumber));
> > footerTable.AddCell(cell1);
> >
> > PdfPCell cell2 = new PdfPCell(new Phrase("page " + writer.PageNumber + "
> of "));
> > footerTable.AddCell(cell2);
> > footerTable.TotalWidth = document.Right - document.Left;
> >
> > footerTable.WriteSelectedRows(0, -1, document.LeftMargin,
> > document.BottomMargin, writer.DirectContent);
> > }
> >
> > public void onCloseDocument(PdfWriter writer, Document document)
> > {
> > tpl.BeginText();
> > tpl.SetFontAndSize(helv, 12);
> > tpl.SetTextMatrix(2, 4);
> > tpl.ShowText("Number of pages = " + (writer.PageNumber - 1));
> > tpl.EndText();
> > }
> >
> >
> > }
>
> HTH - keith
>
> _________________________________________________________________
> The New Busy is not the too busy. Combine all your e-mail accounts with
> Hotmail.
>
> http://www.windowslive.com/campaign/thenewbusy?tile=multiaccount&ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_4
>
> ------------------------------------------------------------------------------
> ThinkGeek and WIRED's GeekDad team up for the Ultimate
> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
> lucky parental unit. See the prize list and enter to win:
> http://p.sf.net/sfu/thinkgeek-promo
> _______________________________________________
> iText-questions mailing list
> iText-questions@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/itext-questions
>
> Buy the iText book: http://www.itextpdf.com/book/
> Check the site with examples before you ask questions:
> http://www.1t3xt.info/examples/
> You can also search the keywords list:
> http://1t3xt.info/tutorials/keywords/
>
--
---------------------------
Michelle Zhang
------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit. See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://www.itextpdf.com/book/
Check the site with examples before you ask questions:
http://www.1t3xt.info/examples/
You can also search the keywords list: http://1t3xt.info/tutorials/keywords/