2015-02-11 40 views
0

我有一个JTable,它有四列。我正在使用iText库来打印来自JTable数据的PDF文档。问题是JTable在PDF中没有正确显示。我在Google上搜索过,并且遇到了the same situation here。该代码与我的以及输出类似。我也试过this example using Templates,但结果没有改变。在iText中安装JTable PDF文档

我们该如何解决?请协助。如果代码是必要的,我会发布,但他们太多班 - 我正在一个大的应用程序工作。 我想要的概念是使JTable适合文档。

+0

*我使用iTex图书馆* - 你的意思是** iText **?还是有其他一些库,也许在TeX的背景下,你指的是? – mkl 2015-02-11 08:16:53

+0

@mkl谢谢我错过了** t **,让我把它放在 – JWizard 2015-02-11 09:08:38

回答

1

经过漫长的斗争,我设法如下所示。如果有人遇到这种情况,这是想法,救了我:

public void actionPerformed(ActionEvent e) { 

     try { 
      Document doc = new Document(); 
      PdfWriter.getInstance(doc, new FileOutputStream("table.pdf")); 
      doc.open(); 
      PdfPTable pdfTable = new PdfPTable(table.getColumnCount()); 
      //adding table headers 
      for (int i = 0; i < table.getColumnCount(); i++) { 
       pdfTable.addCell(table.getColumnName(i)); 
      } 
      //extracting data from the JTable and inserting it to PdfPTable 
      for (int rows = 0; rows < table.getRowCount() - 1; rows++) { 
       for (int cols = 0; cols < table.getColumnCount(); cols++) { 
        pdfTable.addCell(table.getModel().getValueAt(rows, cols).toString()); 

       } 
      } 
      doc.add(pdfTable); 
      doc.close(); 
      System.out.println("done"); 
     } catch (DocumentException ex) { 
      Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex); 
     } catch (FileNotFoundException ex) { 
      Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex); 
     } 

    } 
}; 
+0

长期Java!欢呼 – mustangDC 2015-07-06 17:34:43

+0

我试过你的代码。我得到了一个问题,并通过使用table.getRowCount()而不是table.getRowCount() - 1来修复它。 – Junaid 2016-04-27 05:50:26

+0

@Junaid好吧,那很好。当事情不能按我想要的方式发布时,我写了这些代码。这很难,我是一个Java初级:) - – JWizard 2016-04-30 12:23:08