亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java使用iTextPDF生成PDF文件的實(shí)現(xiàn)方法

瀏覽:33日期:2022-08-16 13:03:57
iText介紹和說(shuō)明

因?yàn)轫?xiàng)目需要生成PDF文件,所以去找了一下能夠生成PDF的Java工具,看到了iText可以說(shuō)好評(píng)如潮。

如果你想通過(guò)java操作PDF文件,那么 iText 絕對(duì)是你的首選。

引入依賴

這里使用的是iText5

<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.10</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency>使用步驟簡(jiǎn)單介紹

快速入手iText攏共需要5步:

創(chuàng)建文檔實(shí)例 Document 獲取PdfWriter實(shí)例 (需要指定Document實(shí)例 和pdf 生成的磁盤路徑) 打開文檔 添加段落內(nèi)容 關(guān)閉操作文檔實(shí)例 (操作完成后必須執(zhí)行文檔關(guān)閉操作)創(chuàng)建工具類

public class PdfUtil { // 標(biāo)準(zhǔn)字體 public static Font NORMALFONT; // 加粗字體 public static Font BOLDFONT; //固定高 public static float fixedHeight = 27f; //間距 public static int spacing = 5; static { try { BaseFont bfChinese = BaseFont.createFont('STSong-Light', 'UniGB-UCS2-H', BaseFont.NOT_EMBEDDED); NORMALFONT = new Font(bfChinese, 10, Font.NORMAL); BOLDFONT = new Font(bfChinese, 14, Font.BOLD); } catch (Exception e) { e.printStackTrace(); } } public static Document createDocument() { //生成pdf Document document = new Document(); // 頁(yè)面大小 Rectangle rectangle = new Rectangle(PageSize.A4); // 頁(yè)面背景顏色 rectangle.setBackgroundColor(BaseColor.WHITE); document.setPageSize(rectangle); // 頁(yè)邊距 左,右,上,下 document.setMargins(20, 20, 20, 20); return document; } /** * @param text 段落內(nèi)容 * @return */ public static Paragraph createParagraph(String text, Font font) { Paragraph elements = new Paragraph(text, font); elements.setSpacingBefore(5); elements.setSpacingAfter(5); elements.setSpacingAfter(spacing); return elements; } public static Font createFont(int fontNumber, int fontSize, BaseColor fontColor) { //中文字體 ----不然中文會(huì)亂碼 BaseFont bf = null; try { bf = BaseFont.createFont('STSong-Light', 'UniGB-UCS2-H', BaseFont.NOT_EMBEDDED); return new Font(bf, fontNumber, fontSize, fontColor); } catch (Exception e) { e.printStackTrace(); } return new Font(bf, Font.DEFAULTSIZE, Font.NORMAL, BaseColor.BLACK); } /** * 隱藏表格邊框線 * * @param cell 單元格 */ public static void disableBorderSide(PdfPCell cell) { if (cell != null) { cell.disableBorderSide(1); cell.disableBorderSide(2); cell.disableBorderSide(4); cell.disableBorderSide(8); } } /** * 創(chuàng)建居中得單元格 * * @return */ public static PdfPCell createCenterPdfPCell() { PdfPCell cell = new PdfPCell(); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setFixedHeight(fixedHeight); return cell; } /** * 創(chuàng)建指定文字得單元格 * * @param text * @return */ public static PdfPCell createCenterPdfPCell(String text, int rowSpan, int colSpan, Font font) { PdfPCell cell = new PdfPCell(new Paragraph(text, font)); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setFixedHeight(fixedHeight); cell.setRowspan(rowSpan); cell.setColspan(colSpan); return cell; } /** * @param len 表格列數(shù) * @return */ public static PdfPTable createPdfPTable(int len) { PdfPTable pdfPTable = new PdfPTable(len); pdfPTable.setSpacingBefore(5); pdfPTable.setHorizontalAlignment(Element.ALIGN_CENTER); return pdfPTable; }}創(chuàng)建controller進(jìn)行測(cè)試

/** * @author Wang Guolong * @version 1.0 * @date 2020/6/28 3:17 下午 */@RestController@RequestMapping('/pdf')public class PdfController { @RequestMapping('/generate') public Response generatePDF(HttpServletResponse response) throws Exception { String filename = '測(cè)試pdf'; // 設(shè)置下載格式為pdf response.setContentType('application/x-download'); response.addHeader('Content-Disposition', 'attachment;filename=' + URLEncoder.encode(filename, 'UTF-8') + '.pdf'); OutputStream os = new BufferedOutputStream(response.getOutputStream()); // 1. Document document = new Document(); Document document = PdfUtil.createDocument(); // 2. 獲取writer PdfWriter.getInstance(document, os); // 3. open() document.open(); //設(shè)置字體 Font blackFont = PdfUtil.createFont(10, Font.NORMAL, BaseColor.BLACK); Font blueFont = PdfUtil.createFont(10, Font.NORMAL, BaseColor.BLUE); Font bigFont = PdfUtil.createFont(14, Font.NORMAL, BaseColor.BLACK); Font littleFont = PdfUtil.createFont(10, Font.NORMAL, BaseColor.BLACK); Paragraph title = PdfUtil.createParagraph('測(cè)試pdf', bigFont); title.setAlignment(Element.ALIGN_CENTER); // 4. 添加段落內(nèi)容 document.add(title); // 5. close() document.close(); os.close(); return new Response().setContent('success'); }}

運(yùn)行結(jié)果

下載頁(yè)面:

Java使用iTextPDF生成PDF文件的實(shí)現(xiàn)方法

下載的文件效果:

Java使用iTextPDF生成PDF文件的實(shí)現(xiàn)方法

到此這篇關(guān)于Java使用iTextPDF生成PDF文件的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)Java使用iTextPDF生成PDF內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 国产精品系列在线 | 国产综合久久一区二区三区 | 成人在线观看网站 | 欧美xxxx新一区二区三区 | 国产精品久久久久久免费播放 | 国产成人99久久亚洲综合精品 | 免费黄毛片 | 黄色福利在线观看 | 精品成人免费自拍视频 | 五月婷婷久| 色图在线观看 | 在线视频亚洲欧美 | 午夜久久免影院欧洲 | 青青草久热精品视频在线观看 | 日韩欧美卡一卡二卡新区 | 一二三区在线视频 | 91大神成人偷拍在线观看 | 免费人成网站线观看合集 | 日韩免费网站 | 国产成人精品日本亚洲语音 | 免费看国产精品久久久久 | 日本一级特黄a大片 | 国产精品国产香蕉在线观看网 | 亚洲免费观看在线视频 | 亚洲欧美日本综合一区二区三区 | 黄色a级免费网站 | 苗族一级特黄a大片 | 日韩综合 | 精品国产精品久久一区免费式 | 久久综合九九 | 国产不卡一区 | 国产精品高清视亚洲一区二区 | a级午夜毛片免费一区二区 a级午夜理论免费毛片 | 欧美不在线 | 久久久久无码国产精品一区 | 国产高清一区二区三区四区 | 精品国产免费久久久久久婷婷 | 水蜜桃爱爱yy视频在线观看 | 国产成人爱片免费观看视频 | 国产精品国产三级国产无毒 | 免费视频一区二区三区四区 |