【问题标题】:Convert Excel to PDF - Java using iText使用 iText 将 Excel 转换为 PDF - Java
【发布时间】:2018-02-03 19:31:53
【问题描述】:

我用 Apache POI 创建了一个 excel 文件。 现在我需要将其转换为 PDF。 我想使用 iText,但我想将合并的单元格、样式等从 excel 文件复制到 pdf。

我怎样才能做到这一点?因为我在网上找到的代码示例:PDF to Excel using iText and Apache POI 很好,但不会复制合并的单元格、样式。

有什么想法吗?非常感谢!

【问题讨论】:

    标签: java excel pdf itext


    【解决方案1】:

    如果你要使用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查看更多示例

    【讨论】:

    • 补充 Joris 的回答:一个不只是从 Excel 中“复制样式”。 自己设置样式,决定什么和如何。您需要 Apache POI 来读取 Excel 样式,然后自己完成工作以将其转换为相应的 iText setFont/setFontColor/setFontSize 语句。
    • @Joris 以及如何合并单元格? developers.itextpdf.com/examples/tables/colspan-and-rowspan -> 这里的例子不好......
    • 你能解释一下为什么这个例子不好?另外,您是在谈论合并输入中的单元格还是输出中的单元格?
    猜你喜欢
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    相关资源
    最近更新 更多