Java生成PDF表格

引言

在现代信息化的时代,PDF(Portable Document Format)是一种非常常见的文档格式。它的优势在于跨平台、不易篡改和良好的可读性。在许多业务场景中,我们常常需要将数据以表格的形式呈现,并将其生成为PDF格式的文件。本文将介绍如何使用Java生成PDF表格,并提供相应的代码示例。

准备工作

在开始编写代码之前,我们需要先准备好一些依赖库。在Java中,我们可以使用iText库来生成PDF文档。iText是一个功能强大且易于使用的开源库,它提供了生成PDF文件所需的各种功能。

你可以从iText官方网站[

下载完成后,将iText库的jar文件添加到你的Java项目的依赖中。

创建PDF文档

首先,我们需要创建一个空白的PDF文档。以下是一个示例代码:

import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;

public class CreatePDF {
    public static void main(String[] args) {
        // 创建一个新的PDF文档
        PdfDocument pdfDoc = new PdfDocument(new PdfWriter("output.pdf"));
        
        // 关闭文档
        pdfDoc.close();
        
        System.out.println("PDF文档已创建成功!");
    }
}

在上面的代码中,我们使用PdfDocument类创建一个新的PDF文档,并使用PdfWriter将其写入到名为"output.pdf"的文件中。然后,我们调用pdfDoc.close()方法来关闭文档。最后,打印输出一条成功创建PDF文档的信息。

创建表格

接下来,我们需要向PDF文档中添加表格。以下是一个示例代码:

import com.itextpdf.kernel.colors.ColorConstants;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.geom.PageSize;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.Table;
import com.itextpdf.layout.property.TextAlignment;

public class CreateTable {
    public static void main(String[] args) {
        try {
            // 创建一个新的PDF文档
            PdfDocument pdfDoc = new PdfDocument(new PdfWriter("output.pdf"));
            
            // 创建一个A4大小的页面
            PageSize pageSize = PageSize.A4;
            
            // 创建一个文档对象
            Document doc = new Document(pdfDoc, pageSize);
            
            // 创建一个表格对象
            Table table = new Table(3);
            
            // 设置表格宽度为页面宽度的80%
            table.setWidthPercent(80);
            
            // 设置表格的对齐方式为居中对齐
            table.setTextAlignment(TextAlignment.CENTER);
            
            // 创建字体对象
            PdfFont font = PdfFontFactory.createFont("Helvetica");
            
            // 创建表头单元格并设置样式
            Cell cell = new Cell().add("姓名").setFont(font).setFontSize(12).setBold().setBackgroundColor(ColorConstants.LIGHT_GRAY);
            table.addHeaderCell(cell);
            
            cell = new Cell().add("年龄").setFont(font).setFontSize(12).setBold().setBackgroundColor(ColorConstants.LIGHT_GRAY);
            table.addHeaderCell(cell);
            
            cell = new Cell().add("性别").setFont(font).setFontSize(12).setBold().setBackgroundColor(ColorConstants.LIGHT_GRAY);
            table.addHeaderCell(cell);
            
            // 添加表格数据
            table.addCell(new Cell().add("张三").setFont(font).setFontSize(12));
            table.addCell(new Cell().add("25").setFont(font).setFontSize(12));
            table.addCell(new Cell().add("男").setFont(font).setFontSize(12));
            
            table.addCell(new Cell().add("李四").setFont(font).setFontSize(12));
            table.addCell(new Cell().add("30").setFont(font).setFontSize(12));
            table.addCell(new Cell().add("女").setFont(font).setFontSize(12));
            
            // 将表格添加到文档中
            doc.add(table);
            
            // 关闭文档
            doc.close();
            
            System.out.println("PDF表格已创建成功!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们创建了一个A4大小的页面,并使用Document类创建一个文档对象。