2017-08-25 113 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

你能解释为什么这个例子不好吗?另外,你是在谈论在输入中还是在输出中合并单元? –