You can't use Document.add() in a page event. It must all be placed at 
absolute positions in PdfContentByte.

Paulo

----- Original Message ----- 
From: "mcevikce" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Monday, July 24, 2006 6:18 PM
Subject: [iText-questions] Header/Footer Question?


>
> I am trying to add header and footer to each page in my document but 
> facing
> two issues with it. I have followed the tutorial and extended
> PdfPageEventHelper class.
>
>
> 1-) When I add just the footer, the footer is addedd to begining and the 
> end
> of the page.
>
> 2-) When I try to add the title I get stack overflow.
>
> Here is the section of my code:
> public void onEndPage(PdfWriter a_writer, Document a_document) {
> try {
> FooterCreator footerCreator = new FooterCreator(_helper);
> a_document.add(footerCreator.createFooterTable(a_writer, a_document));
> TitleCreator titleCreator = new TitleCreator(_helper);
> a_document.add(titleCreator.createTitleTable(a_writer, a_document));
> } catch (Exception e) {
> throw new ExceptionConverter(e);
> }
> }
>
>
> Title creator:
> public PdfPTable createTitleTable(PdfWriter a_writer, Document a_document)
> throws Exception {
> float[] colWidths = new float[2];
> colWidths[0] = (_helper.getBetterTableWidth() ) -
> (VSTextUtility.getColumnWidth(_helper.getReportCreationTimeAndDate()));
> colWidths[1] =
> VSTextUtility.getColumnWidth(_helper.getReportCreationTimeAndDate()) ;
> Rectangle page = a_document.getPageSize();
> PdfPTable pdfPTable = new PdfPTable(colWidths);
> pdfPTable.setTotalWidth(page.width() - a_document.leftMargin() -
> a_document.rightMargin());
> pdfPTable.setWidthPercentage(100);
> addData(pdfPTable);
> pdfPTable.writeSelectedRows(0, -1, a_document.leftMargin(), page.height()
> - a_document.topMargin() + pdfPTable.getTotalHeight(),
>                a_writer.getDirectContent());
> return pdfPTable;
> }
>
>
> FooterCreator:
> public PdfPTable createFooterTable(PdfWriter a_writer, Document 
> a_document)
> throws Exception  {
> float[] colWidths = new float[1];
> colWidths[0] = _helper.getBetterTableWidth();
> Rectangle page = a_document.getPageSize();
> PdfPTable pdfPTable = new PdfPTable(colWidths);
> pdfPTable.setTotalWidth(page.width() - a_document.leftMargin() -
> a_document.rightMargin());
> pdfPTable.setWidthPercentage(100);
> addData(pdfPTable);
> pdfPTable.writeSelectedRows(0, -1, a_document.leftMargin(),
> a_document.bottomMargin(),
>                a_writer.getDirectContent());
> return pdfPTable;
> }
>
>
>
>
>
>
> Here is the exception:
>
> [24-07-2006 13:08:13.266] [846768]
> [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/viewserver].[viewserver]]
> [ERROR] [TP-Processor3] Servlet.service() for servlet viewserver threw
> exception
> java.lang.StackOverflowError
>        at java.lang.String.toLowerCase(String.java:2277)
>        at com.lowagie.text.pdf.PdfEncodings.convertToBytes(Unknown Source)
>        at com.lowagie.text.pdf.BaseFont.convertToBytes(Unknown Source)
>        at com.lowagie.text.pdf.FontDetails.convertToBytes(Unknown Source)
>        at com.lowagie.text.pdf.PdfContentByte.showText2(Unknown Source)
>        at com.lowagie.text.pdf.PdfContentByte.showText(Unknown Source)
>        at com.lowagie.text.pdf.PdfDocument.writeLineToContent(Unknown
> Source)
>        at com.lowagie.text.pdf.ColumnText.go(Unknown Source)
>        at com.lowagie.text.pdf.ColumnText.go(Unknown Source)
>        at com.lowagie.text.pdf.PdfPRow.writeCells(Unknown Source)
>        at com.lowagie.text.pdf.PdfPTable.writeSelectedRows(Unknown Source)
>        at com.lowagie.text.pdf.PdfPTable.writeSelectedRows(Unknown Source)
>        at com.lowagie.text.pdf.PdfPTable.writeSelectedRows(Unknown Source)
>        at com.lowagie.text.pdf.ColumnText.goComposite(Unknown Source)
>        at com.lowagie.text.pdf.ColumnText.go(Unknown Source)
>        at com.lowagie.text.pdf.ColumnText.go(Unknown Source)
>        at com.lowagie.text.pdf.PdfDocument.addPTable(Unknown Source)
>        at com.lowagie.text.pdf.PdfDocument.add(Unknown Source)
>        at
> com.bfm.app.viewserver.pdfwriter.itext.PageEventHandler.onEndPage(PageEventHandler.java:22)
>        at com.lowagie.text.pdf.PdfDocument.newPage(Unknown Source)
>        at com.lowagie.text.pdf.PdfDocument.addPTable(Unknown Source)
>        at com.lowagie.text.pdf.PdfDocument.add(Unknown Source)
>        at
> com.bfm.app.viewserver.pdfwriter.itext.PageEventHandler.onEndPage(PageEventHandler.java:22)
>        at com.lowagie.text.pdf.PdfDocument.newPage(Unknown Source)
>        at com.lowagie.text.pdf.PdfDocument.addPTable(Unknown Source)
>        at com.lowagie.text.pdf.PdfDocument.add(Unknown Source)
>        at
> com.bfm.app.viewserver.pdfwriter.itext.PageEventHandler.onEndPage(PageEventHandler.java:22)
>        at com.lowagie.text.pdf.PdfDocument.newPage(Unknown Source)
>        at com.lowagie.text.pdf.PdfDocument.addPTable(Unknown Source)
>        at com.lowagie.text.pdf.PdfDocument.add(Unknown Source)
>        at
> com.bfm.app.viewserver.pdfwriter.itext.PageEventHandler.onEndPage(PageEventHandler.java:22)
>        at com.lowagie.text.pdf.PdfDocument.newPage(Unknown Source)
>        at com.lowagie.text.pdf.PdfDocument.addPTable(Unknown Source)
>        at com.lowagie.text.pdf.PdfDocument.add(Unknown Source)
>
> -- 
> View this message in context: 
> http://www.nabble.com/Header-Footer-Question--tf1993704.html#a5471672
> Sent from the iText - General forum at Nabble.com.
>
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share 
> your
> opinions on IT & business topics through brief surveys -- and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> iText-questions mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/itext-questions 


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions

Reply via email to