效果圖
public void downloadsPDF(HttpServletRequest request, HttpServletResponse response) throws Exception {
// 告訴瀏覽器用什麼軟件可以打開此文件
response.setHeader("content-Type", "application/pdf");
// 下載文件的默認名稱
response.setHeader("Content-Disposition", "attachment;filename=user.pdf");
Document document = new Document();
PdfWriter.getInstance(document, response.getOutputStream());
document.open();
try {
// 設置中文字體不亂碼
BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
/* 字體大小 */
Font font = new Font(bfChinese, 12, Font.NORMAL);
// A4紙張
document.setPageSize(PageSize.A4);
// 標題
document.add(new Paragraph("XXXXXXXXX", font));
// 換行
document.add(new Chunk("\n"));
/* 列數 */
PdfPTable table = new PdfPTable(3);
// 單元格
PdfPCell cell = null;
// 字體,定義爲藍色加粗
table.setPaddingTop(1f);
// 每列的寬度
table.setTotalWidth(new float[] { 99, 50, 70 });
// 鎖定寬度 設置寬度必須鎖定寬度
table.setLockedWidth(true);
// 標題
cell = new PdfPCell(new Paragraph("1", font));
// 居中對齊
cell.setHorizontalAlignment(1);
// 將單元格加入表格
table.addCell(cell);
cell = new PdfPCell(new Paragraph("2", font));
// 居中對齊
cell.setHorizontalAlignment(1);
// 將單元格加入表格
table.addCell(cell);
cell = new PdfPCell(new Paragraph("3", font));
// 居中對齊
cell.setHorizontalAlignment(1);
// 將單元格加入表格
table.addCell(cell);
// 正式寫入列表數據
cell = new PdfPCell(new Paragraph("第一列 合併兩行", font));
/* 水平居中 */
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
/* 垂直居中 */
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
// 合併行數
cell.setRowspan(2);
table.addCell(cell);
cell = new PdfPCell(new Paragraph("第一列 合併兩列", font));
/* 水平居中 */
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
/* 垂直居中 */
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
// 合併兩列
cell.setColspan(2);
table.addCell(cell);
cell = new PdfPCell(new Paragraph("第二行 第兩列", font));
/* 水平居中 */
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
/* 垂直居中 */
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(cell);
cell = new PdfPCell(new Paragraph("第二列 第三列", font));
/* 水平居中 */
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
/* 垂直居中 */
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
table.addCell(cell);
/*--------------------- 第三列-----------------*/
cell = new PdfPCell(new Paragraph("第三行 合併三列", font));
/* 水平居中 */
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
/* 垂直居中 */
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setColspan(3);
table.addCell(cell);
/*--------------------- 第四列 圖片-----------------*/
Image image = Image.getInstance("/20190812135709.jpg");
image.scaleToFit(30, 30);// 自定義大小
cell = new PdfPCell(image, false);
/* 水平居中 */
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
/* 垂直居中 */
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setColspan(3);
table.addCell(cell);
// 文檔中加入表格
document.add(table);
} catch (Exception e) {
e.printStackTrace();
} finally {
document.close();
}
}
總結 按照下面的圖形 一步步設置就能出現對應的pdf