//构建文档
Document document = new Document();
//设置纸张类型
document.setPageSize(PageSize.A4);
//document.setPageSize(PageSize.A4.rotate());设置纸张横向
File file = new File(outPdf);
OutputStream os = new FileOutputStream(file);
PdfWriter.getInstance(document,os);
document.open();
//设置字体,使用iTextAsian.jar中的字体,也可以使用windows字体或者资源字体
BaseFont baseFont = BaseFont.createFont("STSongStd-Light","UniGB-UCS2-H", false);
com.itextpdf.text.Font font10 = new com.itextpdf.text.Font(baseFont,10);
com.itextpdf.text.Font font12 = new com.itextpdf.text.Font(baseFont,12);
//构建pdf中表格列宽以及列数
float[] widths = { 0.3f,0.3f,0.3f,0.3f, 0.3f, 0.3f};
PdfPTable table = new PdfPTable(widths);
//设置表宽度
table.setWidthPercentage(100);
//设置表格前间距
table.setSpacingBefore(30);
//构建pdf内容
PdfPCell row2Cell01 = new PdfPCell(new Paragraph("测试",font12));
//合并列
row2Cell01.setColspan(6);
//设置单元格最小高度
row2Cell01.setMinimumHeight(30);
//设置边框
row2Cell01.setBorder(0);
//设置水平居中
row2Cell01.setHorizontalAlignment(Element.ALIGN_CENTER);
//设置垂直居中
row2Cell01.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(row2Cell01);
//设置打印列列名
PdfPCell row5Cell02 = new PdfPCell(new Paragraph("第一列",font8));
row5Cell02.setHorizontalAlignment(Element.ALIGN_CENTER);
row5Cell02.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(row5Cell02);
PdfPCell row5Cell03 = new PdfPCell(new Paragraph("第二列",font8));
row5Cell03.setHorizontalAlignment(Element.ALIGN_CENTER);
row5Cell03.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(row5Cell03);
PdfPCell row5Cell04 = new PdfPCell(new Paragraph("第三列",font8));
row5Cell04.setHorizontalAlignment(Element.ALIGN_CENTER);
row5Cell04.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(row5Cell04);
PdfPCell row3Cell01 = new PdfPCell(new Paragraph("第四列",font8));
row3Cell01.setHorizontalAlignment(Element.ALIGN_CENTER);
row3Cell01.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(row3Cell01);
PdfPCell row4Cell01 = new PdfPCell(new Paragraph("第五列",font8));
row4Cell01.setHorizontalAlignment(Element.ALIGN_CENTER);
row4Cell01.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(row4Cell01);
PdfPCell row5Cell01 = new PdfPCell(new Paragraph("第六列",font8));
row5Cell01.setHorizontalAlignment(Element.ALIGN_CENTER);
row5Cell01.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(row5Cell01);
//获取打印集合数据
List<InvWriteOffModel> pageList = baseMapper.selectWriteOffInfo(invWriteOffModel);
//将集合中数据加到对应表格中
for (int i = 0; i < pageList.size(); i++) {
InvWriteOffModel writeOffModel = pageList.get(i);
PdfPCell cellX5 = new PdfPCell(new Paragraph(writeOffModel.getMarketType(),font8));
cellX5.setVerticalAlignment(Element.ALIGN_CENTER);
cellX5.setHorizontalAlignment(Element.ALIGN_MIDDLE);
table.addCell(cellX5);
PdfPCell cellX6 = new PdfPCell(new Paragraph(String.valueOf(writeOffModel.getMarketNum()),font8));
cellX6.setVerticalAlignment(Element.ALIGN_CENTER);
cellX6.setHorizontalAlignment(Element.ALIGN_MIDDLE);
table.addCell(cellX6);
PdfPCell cellX7 = new PdfPCell(new Paragraph(String.valueOf(writeOffModel.getMarketAmount()),font8));
cellX7.setVerticalAlignment(Element.ALIGN_CENTER);
cellX7.setHorizontalAlignment(Element.ALIGN_MIDDLE);
table.addCell(cellX7);
PdfPCell cellX2 = new PdfPCell(new Paragraph(writeOffModel.getDayType(),font8));
cellX2.setVerticalAlignment(Element.ALIGN_CENTER);
cellX2.setHorizontalAlignment(Element.ALIGN_MIDDLE);
table.addCell(cellX2);
PdfPCell cellX3 = new PdfPCell(new Paragraph(String.valueOf(writeOffModel.getDayNum()),font8));
cellX3.setVerticalAlignment(Element.ALIGN_CENTER);
cellX3.setHorizontalAlignment(Element.ALIGN_MIDDLE);
table.addCell(cellX3);
PdfPCell cellX4 = new PdfPCell(new Paragraph(String.valueOf(writeOffModel.getDayAmount()),font8));
cellX4.setVerticalAlignment(Element.ALIGN_CENTER);
cellX4.setHorizontalAlignment(Element.ALIGN_MIDDLE);
table.addCell(cellX4);
}
//把表格添加到文档中
document.add(table);
//关闭文档
document.close();
//关闭流
os.close();
iText5 构建pdf
最新推荐文章于 2023-12-10 21:16:19 发布