2010-07-02 49 views
1

目前,我正在使用iText将我的jTable数据转换为pdf。Java JTable导出为PDF

private void print() { 
    Document document = new Document(); 
    try { 
     PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("jTable.pdf")); 

     document.open(); 
     PdfContentByte cb = writer.getDirectContent(); 

     cb.saveState(); 
     Graphics2D g2 = cb.createGraphicsShapes(800, 500); 

     Shape oldClip = g2.getClip(); 
     g2.clipRect(0, 0, 800, 500); 

     jTable.print(g2); 
     g2.setClip(oldClip); 

     g2.dispose(); 
     cb.restoreState(); 
    } catch (Exception e) { 
     System.err.println(e.getMessage()); 
    } 
    document.close(); 
    } 

我得到的是没有表头,并让说,如果在表格单元格中的数据显示不完整的,由于空间不够,在PDF中的数据没有完全显示为问题好。有没有其他API可以将jTable模型数据转换为pdf?

回答

1

是的,另一个API将是Docmosis。您可以将模型数据放入DataProvider实例并使用它填充模板。该模板将控制你的表的外观和Docmosis将填充它来产生PDF。您可以将它作为图像来使用,但使用模板来设计表格外观更好。

+0

有没有例子?我尝试下载Docmosis,但不知道如何将我的模型数据放入DataProvider。 – user236501 2010-07-03 04:45:41

+0

我看看这些例子,我需要先创建一个模板吗? – user236501 2010-07-03 04:46:07

+0

是的,Docmosis总是合并数据和模板。看看下载的example1 - 它有源代码。您可以使用占位符和Java代码在您的模板中创建一个表,使用addString()方法将数据从模型中读出到DataProvider中。 – 2010-07-03 14:44:00