下面是一个使用Apache PDFBox在新页面中显示数据行的示例代码:
import java.io.IOException;
import java.util.List;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
public class PDFBoxExample {
public static void main(String[] args) {
try {
PDDocument document = new PDDocument();
PDPage page = new PDPage(PDRectangle.A4);
document.addPage(page);
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
// 设置新页面的起始位置
float startX = 50;
float startY = page.getMediaBox().getHeight() - 50;
// 添加表头
contentStream.beginText();
contentStream.newLineAtOffset(startX, startY);
contentStream.showText("姓名");
contentStream.newLineAtOffset(100, 0);
contentStream.showText("年龄");
contentStream.endText();
// 添加数据行
List data = getData(); // 获取数据
startY -= 20; // 调整起始位置
for (String[] row : data) {
contentStream.beginText();
contentStream.newLineAtOffset(startX, startY);
contentStream.showText(row[0]);
contentStream.newLineAtOffset(100, 0);
contentStream.showText(row[1]);
contentStream.endText();
startY -= 20; // 调整起始位置
}
contentStream.close();
document.save("output.pdf");
document.close();
System.out.println("PDF created successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
private static List getData() {
// 返回示例数据
List data = new ArrayList<>();
data.add(new String[] { "张三", "25" });
data.add(new String[] { "李四", "30" });
data.add(new String[] { "王五", "28" });
return data;
}
}
该示例代码使用Apache PDFBox创建一个PDF文档,并在新页面中显示表头和数据行。您可以根据需要自定义表头和数据。运行该代码后,将生成一个名为"output.pdf"的PDF文件,其中包含表头和数据行。