2013-11-09 2 views
0

Я пытаюсь экспортировать записи из базы данных в формат PDF с использованием библиотеки IText Pdf в java..But я получаю следующие проблемы в выравнивании Pdf таблицы внутри PDF-файл ..Как увеличить ширину PdfPTable в IText Pdf

1.Table не отображается на полной странице pdf. Это оставляет пробелы слева и справа от страницы pdf.

2.Every страница показывает значения в половине страницы только .Means PDF таблица показывает в половине Pdf страниц ..

Вот мой код ..

Document document = new Document(); 
     PdfWriter.getInstance(document, fos); 


     PdfPTable table = new PdfPTable(10); 

     table.setWidthPercentage(100); 
     table.setSpacingBefore(0f); 
     table.setSpacingAfter(0f); 



     PdfPCell cell = new PdfPCell(new Paragraph("DateRange")); 

     cell.setColspan(10); 
     cell.setHorizontalAlignment(Element.ALIGN_CENTER); 
     cell.setPadding(5.0f); 
     cell.setBackgroundColor(new BaseColor(140, 221, 8)); 

     table.addCell(cell); 

     table.addCell("Calldate"); 
     table.addCell("Calltime"); 
     table.addCell("Source"); 
     table.addCell("DialedNo"); 
     table.addCell("Extension"); 
     table.addCell("Trunk"); 
     table.addCell("Duration"); 
     table.addCell("Calltype"); 
     table.addCell("Callcost"); 
     table.addCell("Site"); 

     while (rs.next()) { 
      table.addCell(rs.getString("date")); 
      table.addCell(rs.getString("time")); 
      table.addCell(rs.getString("source")); 
      table.addCell(rs.getString("destination")); 
      table.addCell(rs.getString("extension")); 
      table.addCell(rs.getString("trunk")); 
      table.addCell(rs.getString("dur")); 
      table.addCell(rs.getString("toc")); 
      table.addCell(rs.getString("callcost")); 
      table.addCell(rs.getString("Site")); 
     } 




     table.setSpacingBefore(5.0f);  // Space Before table starts, like margin-top in CSS 
     table.setSpacingAfter(5.0f);  // Space After table starts, like margin-Bottom in CSS           

     document.open();//PDF document opened........     

     document.add(Chunk.NEWLINE); //Something like in HTML :-) 

     document.add(new Paragraph("TechsoftTechnologies.com")); 
     document.add(new Paragraph("Document Generated On - " + new Date().toString())); 

     document.add(table); 
     document.add(Chunk.NEWLINE); //Something like in HTML :-)   
     document.newPage();   //Opened new page 
        //In the new page we are going to add list 

     document.close(); 

     fos.close(); 

ответ

4

Я имел чтобы прочитать ваш вопрос несколько раз, прежде чем я понял, что вы хотите подавить поля. Я копировал/вставлял (и адаптировал) ваш пример, и я думал, что не могу воспроизвести вашу проблему, потому что я (и многие другие разработчики) привык к тому, что у страниц есть поля.

Во всяком случае, это моя версия вашего примера: FullPageTable и создает следующий PDF: full_page_table.pdf

Я сделал некоторые незначительные изменения, например: оно не имеет смысла передавать'Paragraph' в качестве параметра для PdfPCell потому что Paragraph будет рассматриваться как Phrase, но я думаю, что линия вы ищете это:

Document document = new Document(PageSize.A4, 0, 0, 0, 0); 

нули определяют ширину поля, и если я понимаю ваш вопрос правильно, вы хотите подавить эти поля.

Что касается вашего утверждения Каждая страница показывает значения в половине страницы только .Means PDF таблица показывает в половине Pdf страниц, я думаю, что вы, что вызывает себя, вводя document.newPage(); иначе ваше утверждение Безразлично» t имеет смысл ;-)

Смежные вопросы