【发布时间】:2018-02-03 19:31:53
【问题描述】:
我用 Apache POI 创建了一个 excel 文件。 现在我需要将其转换为 PDF。 我想使用 iText,但我想将合并的单元格、样式等从 excel 文件复制到 pdf。
我怎样才能做到这一点?因为我在网上找到的代码示例:PDF to Excel using iText and Apache POI 很好,但不会复制合并的单元格、样式。
有什么想法吗?非常感谢!
【问题讨论】:
我用 Apache POI 创建了一个 excel 文件。 现在我需要将其转换为 PDF。 我想使用 iText,但我想将合并的单元格、样式等从 excel 文件复制到 pdf。
我怎样才能做到这一点?因为我在网上找到的代码示例:PDF to Excel using iText and Apache POI 很好,但不会复制合并的单元格、样式。
有什么想法吗?非常感谢!
【问题讨论】:
如果你要使用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查看更多示例
【讨论】:
setFont/setFontColor/setFontSize 语句。