2017-08-25 343 views

回答

3

如果您打算使用iText,最好使用iText7。這是iText的最新版本,並且已經完成了大量的錯誤修復(特別是對於表格)。

我已經說過了,當我看這個例子時,它似乎只是遍歷所有單元格並將它們添加到一個iText Table對象中。

iText7完全可以做到同樣的事情。您創建一個適當數量的列的表格,然後添加單元格。

你的問題(就我而言)歸結爲「我如何設計iText表格單元格」。

這是一段只生成表格的示例代碼。我已經指出了你可以在哪裏設計表格的內容。

public static void main(String[] args) throws Exception { 
    File file = new File(DEST); 
    file.getParentFile().mkdirs(); 
    manipulatePdf(DEST); 
} 

public static void manipulatePdf(String dest) throws Exception { 
    PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest)); 
    Document doc = new Document(pdfDoc); 

    Table table = new Table(8); 
    for (int i = 0; i < 16; i++) { 
     Paragraph para = new Paragraph("hi"); 
     // now you can use methods like: 
     // para.setFont() 
     // para.setFontColor() 
     // para.setFontSize() 
     table.addCell(para); 
    } 
    doc.add(table); 

    doc.close(); 
} 

退房在http://developers.itextpdf.com/content/itext-7-examples/itext-7-tables

+1

更多的例子要添加到里斯的答案:一個並不簡單的‘複製樣式’從Excel。 *你*自己設定風格,*你*決定什麼和如何。您需要Apache POI才能讀取Excel樣式,然後自行完成工作,將其轉換爲相應的iText'setFont' /'setFontColor' /'setFontSize'語句。 –

+0

@Joris以及我如何合併單元格? http://developers.itextpdf.com/examples/tables/colspan-and-rowspan - >這裏的例子不好... – Ady96

+0

你能解釋爲什麼這個例子不好嗎?另外,你是在談論在輸入中還是在輸出中合併單元? –