2010-07-02 51 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