日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Itext实现导出PDF常用方法说明

發(fā)布時間:2025/3/19 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Itext实现导出PDF常用方法说明 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

場景

SpringBoot加itext實(shí)現(xiàn)PDF導(dǎo)出下載

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/89475877

實(shí)現(xiàn)

1.設(shè)置響應(yīng)格式

?response.setContentType("application/pdf");response.setHeader("Expires", "0");response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");response.setHeader("Pragma", "public");

2.設(shè)置紙張規(guī)格并創(chuàng)建文檔實(shí)例

//設(shè)置紙張規(guī)格為A4紙 Rectangle rect = new Rectangle(PageSize.A4); //創(chuàng)建文檔實(shí)例 Document doc=new Document(rect);

3.添加中文字體

BaseFont bfChinese=BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);

4.設(shè)置字體樣式

Font textFont = new Font(bfChinese,11, Font.NORMAL); //正常 //Font redTextFont = new Font(bfChinese,11,Font.NORMAL,Color.RED); //正常,紅色 Font boldFont = new Font(bfChinese,11,Font.BOLD); //加粗 //Font redBoldFont = new Font(bfChinese,11,Font.BOLD,Color.RED); //加粗,紅色 Font firsetTitleFont = new Font(bfChinese,22,Font.BOLD); //一級標(biāo)題 Font secondTitleFont = new Font(bfChinese,15,Font.BOLD, CMYKColor.BLUE); //二級標(biāo)題 Font underlineFont = new Font(bfChinese,11,Font.UNDERLINE); //下劃線斜體

5.設(shè)置字體

com.itextpdf.text.Font FontChinese24 = new com.itextpdf.text.Font(bfChinese, 24, com.itextpdf.text.Font.BOLD);com.itextpdf.text.Font FontChinese18 = new com.itextpdf.text.Font(bfChinese, 18, com.itextpdf.text.Font.BOLD);com.itextpdf.text.Font FontChinese16 = new com.itextpdf.text.Font(bfChinese, 16, com.itextpdf.text.Font.BOLD);com.itextpdf.text.Font FontChinese12 = new com.itextpdf.text.Font(bfChinese, 12, com.itextpdf.text.Font.NORMAL);com.itextpdf.text.Font FontChinese11Bold = new com.itextpdf.text.Font(bfChinese, 11, com.itextpdf.text.Font.BOLD);com.itextpdf.text.Font FontChinese11 = new com.itextpdf.text.Font(bfChinese, 11, com.itextpdf.text.Font.ITALIC);com.itextpdf.text.Font FontChinese11Normal = new com.itextpdf.text.Font(bfChinese, 11, com.itextpdf.text.Font.NORMAL);

6.設(shè)置要到處PDF響應(yīng)并設(shè)置導(dǎo)出PDF標(biāo)題

?

String title = "霸道流氓氣質(zhì)";response.setHeader("Content-disposition","attachment; filename=".concat(String.valueOf(URLEncoder.encode(title + ".pdf", "UTF-8"))));

7.輸出流轉(zhuǎn)換

OutputStream out = response.getOutputStream(); PdfWriter.getInstance(doc,out); doc.open(); doc.newPage();

8.新建段落

Paragraph?? p1 = new Paragraph("二級標(biāo)題", secondTitleFont);

9.設(shè)置段落行高

?p1.setLeading(0);

10.設(shè)置段落文本居中

?p1.setAlignment(Element.ALIGN_CENTER);

11.將段落添加到文檔上

?doc.add(p1);

12.設(shè)置空行

Paragraph blankRow1 = new Paragraph(18f, " ", FontChinese11); doc.add(blankRow1);

13.新建表格列數(shù)為2

?PdfPTable table1 = new PdfPTable(2);

14.給表格設(shè)置寬度

int width1[] = {80,60}; table1.setWidths(width1);

15.新建單元格并賦值加設(shè)置字體

PdfPCell cell11 = new PdfPCell(new Paragraph("姓名:? "+name,boldFont));

16.設(shè)置單元格邊框

cell11.setBorder(0);

17.表格中添加單元格

table1.addCell(cell11);

18.關(guān)閉文檔

doc.close();

?

完整示例代碼

public void exportPdf(Long orderId, HttpServletRequest request, HttpServletResponse response) throws Exception {//設(shè)置響應(yīng)格式等response.setContentType("application/pdf");response.setHeader("Expires", "0");response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");response.setHeader("Pragma", "public");Map<String,Object> map = new HashMap<>();//設(shè)置紙張規(guī)格為A4紙Rectangle rect = new Rectangle(PageSize.A4);//創(chuàng)建文檔實(shí)例Document doc=new Document(rect);//添加中文字體BaseFont bfChinese=BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);//設(shè)置字體樣式Font textFont = new Font(bfChinese,11, Font.NORMAL); //正常//Font redTextFont = new Font(bfChinese,11,Font.NORMAL,Color.RED); //正常,紅色Font boldFont = new Font(bfChinese,11,Font.BOLD); //加粗//Font redBoldFont = new Font(bfChinese,11,Font.BOLD,Color.RED); //加粗,紅色Font firsetTitleFont = new Font(bfChinese,22,Font.BOLD); //一級標(biāo)題Font secondTitleFont = new Font(bfChinese,15,Font.BOLD, CMYKColor.BLUE); //二級標(biāo)題Font underlineFont = new Font(bfChinese,11,Font.UNDERLINE); //下劃線斜體//設(shè)置字體com.itextpdf.text.Font FontChinese24 = new com.itextpdf.text.Font(bfChinese, 24, com.itextpdf.text.Font.BOLD);com.itextpdf.text.Font FontChinese18 = new com.itextpdf.text.Font(bfChinese, 18, com.itextpdf.text.Font.BOLD);com.itextpdf.text.Font FontChinese16 = new com.itextpdf.text.Font(bfChinese, 16, com.itextpdf.text.Font.BOLD);com.itextpdf.text.Font FontChinese12 = new com.itextpdf.text.Font(bfChinese, 12, com.itextpdf.text.Font.NORMAL);com.itextpdf.text.Font FontChinese11Bold = new com.itextpdf.text.Font(bfChinese, 11, com.itextpdf.text.Font.BOLD);com.itextpdf.text.Font FontChinese11 = new com.itextpdf.text.Font(bfChinese, 11, com.itextpdf.text.Font.ITALIC);com.itextpdf.text.Font FontChinese11Normal = new com.itextpdf.text.Font(bfChinese, 11, com.itextpdf.text.Font.NORMAL);//設(shè)置要導(dǎo)出的pdf的標(biāo)題String title = "霸道流氓氣質(zhì)";response.setHeader("Content-disposition","attachment; filename=".concat(String.valueOf(URLEncoder.encode(title + ".pdf", "UTF-8"))));OutputStream out = response.getOutputStream();PdfWriter.getInstance(doc,out);doc.open();doc.newPage();//新建段落//使用二級標(biāo)題 顏色為藍(lán)色Paragraph?? p1 = new Paragraph("二級標(biāo)題", secondTitleFont);//設(shè)置行高p1.setLeading(0);//設(shè)置標(biāo)題居中p1.setAlignment(Element.ALIGN_CENTER);//將段落添加到文檔上doc.add(p1);//設(shè)置一個空的段落,行高為18? 什么內(nèi)容都不顯示Paragraph blankRow1 = new Paragraph(18f, " ", FontChinese11);doc.add(blankRow1);//新建表格 列數(shù)為2PdfPTable table1 = new PdfPTable(2);//給表格設(shè)置寬度int width1[] = {80,60};table1.setWidths(width1);//新建單元格String name="霸道";String gender="男";//給單元格賦值 每個單元格為一個段落,每個段落的字體為加粗PdfPCell cell11 = new PdfPCell(new Paragraph("姓名:? "+name,boldFont));PdfPCell cell12 = new PdfPCell(new Paragraph("性別:? "+gender,boldFont));//設(shè)置單元格邊框?yàn)?cell11.setBorder(0);cell12.setBorder(0);table1.addCell(cell11);table1.addCell(cell12);doc.add(table1);PdfPTable table3 = new PdfPTable(2);table3.setWidths(width1);PdfPCell cell15 = new PdfPCell(new Paragraph("博客主頁: https://me.csdn.net/BADAO_LIUMANG_QIZHI? ",boldFont));PdfPCell cell16 = new PdfPCell(new Paragraph("當(dāng)前時間:? "+DateConvert.formatDateToString(new Date(),DateStyle.YYYY_MM_DD),boldFont));cell15.setBorder(0);cell16.setBorder(0);table3.addCell(cell15);table3.addCell(cell16);doc.add(table3);doc.close();}

?

效果

總結(jié)

以上是生活随笔為你收集整理的Itext实现导出PDF常用方法说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。