Hello

I am facing a weird situation that seems like a bug - unless i am missing
something. If someone can help, it will be very-very much appreciated, as i
am really desperate and this is needed urgently. Here's the story:

I am using a base class PDFProducer that is subclassed in order to produce
variations of documents with basically the same format. Sublasses call a
method named buildPdfDocumentAsTable in PDFProducer and provide it with
values that are used to (obviously) build a pdf that consists of a table. 

One of these arguments is used to provide the table with headers. It works
fine for a normal A4 portrait document, but for some reason the header
content does not show when the document is landscape!

I've had quite some trouble with finding the right fonts in the first place,
so i suspect it might have something to do with that..but i've really tried
all i can think of and come up with nothing so far.

Has anyone ever come across a similar situation? Could this be some kind of
weird bug?

Help please!
George Anadiotis

The code for the method is as follows:

        protected void buildPdfDocumentAsTable(Document doc, String title, 
        String[] topHeaders, Integer[] topHeadersAlignment, Font[]
topHeadersFont,Integer[]        topHeadersBorder,Boolean[]
topHeadersKeepBgColor,
        String[] columnHeaders, boolean useHeaderColor, 
        java.util.List content, String[] textAfter, float[] widths)
          throws Exception 
          {
                
                if (this.getTextBefore()!=null)
                {
                        Table table1 = new Table(2);
                        table1.setWidth(this.getDefaultWidth());
                        table1.setBorder(Table.NO_BORDER);
                        
                        int columnsNo = getTextBefore()[0].length;
                        System.out.println("columnsNo = "+columnsNo);
                        for(int i=0;i<columnsNo;i++)
                        {
                                System.out.println("getTextBefore()[0][i] =
"+getTextBefore()[0][i]);
                                if (getTextBefore()[0][i] == null)
        
PDFDocumentPrinter.insertEmptyCell(table1);
                                else
        
PDFDocumentPrinter.insertTextCell(table1,
getTextBefore()[0][i],getTableContentFont(),Element.ALIGN_LEFT) ;
                        
                                System.out.println("getTextBefore()[1][i] =
"+getTextBefore()[1][i]);
                                if (getTextBefore()[1][i] == null)
        
PDFDocumentPrinter.insertEmptyCell(table1);
                                else
        
PDFDocumentPrinter.insertTextCell(table1, getTextBefore()[1][i],
getTableContentFont(),Element.ALIGN_RIGHT) ;

                        }
                        doc.add(table1);
                }
                
                if (title!=null)
                {               
                        Table t3 = new Table(1);
                        t3.setBorder(Table.NO_BORDER);
                        PDFDocumentPrinter.insertTextCell(t3,
title,getTableContentFont(),Element.ALIGN_CENTER) ;
                        doc.add( t3 );
                }
                
                int columnsNo = columnHeaders.length;
                
                
                
                Table table1= new Table(columnsNo);
                table1.setCellsFitPage(true);
                Chunk ch1 = null;
                Cell cell1 = null;



                boolean doTopHeaders = (topHeaders!=null);
                if (doTopHeaders)
                {
                        int topHeadersNo = topHeaders.length; 

                        for (int i=0; i<topHeadersNo; i++)
                        {
                                if (topHeadersFont!=null &&
topHeadersFont[i]!=null)
                                        ch1 = new Chunk(topHeaders[i] ,
getTableContentFont());
                                else
                                        ch1 = new Chunk(topHeaders[i] ,
getTableContentFont());
                                ch1.setTextRise(4);
                                cell1 =new Cell(ch1);
                                if (topHeadersBorder!=null &&
topHeadersBorder[i]!=null)
        
cell1.setBorder(topHeadersBorder[i].intValue());
                                else
                                        cell1.setBorder(Rectangle.BOX);
                                
                                if (topHeadersAlignment!=null &&
topHeadersAlignment[i]!=null)
        
cell1.setHorizontalAlignment(topHeadersAlignment[i].intValue());
                                
                                
                                if (topHeadersKeepBgColor!=null &&
topHeadersKeepBgColor[i]!=null && topHeadersKeepBgColor[i].booleanValue())
        
cell1.setBackgroundColor(getTableHeaderColor());
                                
                                cell1.setHeader(true);
                                cell1.setColspan(columnsNo);
                                table1.addCell(cell1);
                        }
                }
                
                

                
                table1.setAlignment(com.lowagie.text.Element.ALIGN_CENTER);
                table1.setBorderWidth(0);
        
table1.setDefaultHorizontalAlignment(com.lowagie.text.Element.ALIGN_CENTER);

                if (widths!=null)
                {
                        table1.setWidth(getWidth(widths));
                        table1.setWidths(widths);
                }
                else
                        table1.setWidth(getDefaultWidth());


                
                
                //loop that adds headers to the table
                for (int i=0; i<columnsNo; i++)
                {
                        ch1 = new Chunk(columnHeaders[i] ,
getTableHeaderFont());
                        ch1.setTextRise(4);
                        cell1 =new Cell(ch1);
                        cell1.setBorder(Rectangle.BOX);
                        if (useHeaderColor)
        
cell1.setBackgroundColor(getTableHeaderColor());
                        cell1.setHeader(true);
                        table1.addCell(cell1);
                }
                table1.endHeaders();
        
table1.setDefaultHorizontalAlignment(com.lowagie.text.Element.ALIGN_CENTER);

                
        String[] currentRow = null;

        for (int i=0; i<content.size(); i++)
        {
                currentRow = ((String[] )content.get(i));
                
                for (int j=0; j<currentRow.length; j++)
                {
                        if (currentRow[j]!=null)
                        {
                                ch1 = new Chunk( currentRow[j] ,
getTableContentFont() );
                                ch1.setTextRise(4);
                                cell1 =new Cell(ch1);
                                cell1.setBorder(Rectangle.BOX);
                                table1.addCell(cell1);
                        }
                        else
        
PDFDocumentPrinter.insertEmptyCell(table1,Rectangle.BOX);
                }

        }

        doc.add(table1);
          
          if (textAfter!=null)
                  for (int i=0; i<textAfter.length ; i++)
                          {
                                Table atable = new Table(1);
                                atable.setBorder(Table.NO_BORDER);
                                atable.setWidth(getWidth(widths));
                                ch1 = new Chunk( textAfter[i] ,
getTableContentFont() );
                                cell1 = new Cell(ch1);
                                cell1.setBorder(Rectangle.NO_BORDER);
                                atable.addCell(cell1);
                                
                                doc.add(atable);
                          }
                
                System.out.println( "doc.newPage() = "+doc.newPage() );

          }


-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click
_______________________________________________
iText-questions mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/itext-questions

Reply via email to