java +ItextPdf +PdfPCell導出pdf

效果圖

 

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章