java后台导出pdf,基础用法和样例
生活随笔
收集整理的這篇文章主要介紹了
java后台导出pdf,基础用法和样例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.首先添加依賴
<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>2.最基礎(chǔ)的用法為:
// 1.新建document對象Document document = new Document();// 2.建立一個書寫器(Writer)與document對象關(guān)聯(lián),通過書寫器(Writer)可以將文檔寫入到磁盤中。// 創(chuàng)建 PdfWriter 對象 第一個參數(shù)是對文檔對象的引用,第二個參數(shù)是文件的實際名稱,在該名稱中還會給出其輸出路徑。PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("D:/test.pdf"));Anchor anchorTarget = new Anchor("ccccccccccccccccc");anchorTarget.setName("bbbbbbbbbbbbbbbb");Paragraph paragraph1 = new Paragraph();paragraph1.setSpacingBefore(50);paragraph1.add(anchorTarget);document.add(paragraph1);// 3.打開文檔document.open();// 4.添加一個內(nèi)容段落document.add(new Paragraph("Hello World!"));// 5.關(guān)閉文檔document.close();3.我曾經(jīng)寫過的一個項目中的例子(最后有效果圖):
Map resultMap = new HashMap();resultMap.put("RWBH",rwbh);Map rwList = mybatisRepository.selectOne(this.namespace + "queryRwxx", resultMap);List<Map> ldList = mybatisRepository.selectByParams(this.namespace + "queryLdxx", resultMap);// 定義全局的字體靜態(tài)變量Font titlefont;Font headfont;Font keyfont;Font textfont = null;// 最大寬度try {// 不同字體(這里定義為同一種字體:包含不同字號、不同style)BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);titlefont = new Font(bfChinese, 16, Font.BOLD);headfont = new Font(bfChinese, 14, Font.BOLD);keyfont = new Font(bfChinese, 10, Font.BOLD);textfont = new Font(bfChinese, 15, Font.NORMAL);} catch (Exception e) {e.printStackTrace();}BaseFont bf;Font font = null;try {bf = BaseFont.createFont( "STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);//創(chuàng)建字體font = new Font(bf,20,Font.BOLD);//使用字體} catch (Exception e) {e.printStackTrace();}Document document = new Document(new RectangleReadOnly(842F, 595F));try {String filePath="E:/file/dzld/"+rwbh+".pdf";PdfWriter.getInstance(document, new FileOutputStream(filePath));document.open();Paragraph paragraph=new Paragraph("運輸服務(wù)路單匯總表",font);paragraph.setAlignment(1);document.add(paragraph);//引用字體float[] widths = {25f,25f,25f,25f,25f,25f,25f,25f};// 設(shè)置表格的列寬和列數(shù) 默認是4列PdfPTable table = new PdfPTable(widths);// 建立一個pdf表格table.setSpacingBefore(20f);table.setWidthPercentage(100);// 設(shè)置表格寬度為100%PdfPCell cell = null;//第一行cell = new PdfPCell(new Paragraph("優(yōu)選編號",textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setFixedHeight(50);table.addCell(cell);cell = new PdfPCell(new Paragraph(StringUtil.null2blank(rwList.get("RWBH")),textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setColspan(3);table.addCell(cell);cell = new PdfPCell(new Paragraph("任務(wù)名稱",textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell = new PdfPCell(new Paragraph(StringUtil.null2blank(rwList.get("RWMC")),textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setColspan(3);table.addCell(cell);//第2行cell = new PdfPCell(new Paragraph("車牌號",textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setFixedHeight(50);table.addCell(cell);cell = new PdfPCell(new Paragraph(StringUtil.null2blank(rwList.get("CPH")),textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setColspan(3);table.addCell(cell);cell = new PdfPCell(new Paragraph("車型",textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell = new PdfPCell(new Paragraph(StringUtil.null2blank(rwList.get("CXMC")),textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setColspan(3);table.addCell(cell);//第3行cell = new PdfPCell(new Paragraph("用車單位",textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setFixedHeight(50);table.addCell(cell);cell = new PdfPCell(new Paragraph(StringUtil.null2blank(rwList.get("FQDWMC")),textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setColspan(3);table.addCell(cell);cell = new PdfPCell(new Paragraph("派車單位",textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell = new PdfPCell(new Paragraph(StringUtil.null2blank(rwList.get("JDDWMC")),textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setColspan(3);table.addCell(cell);//第4行cell = new PdfPCell(new Paragraph("起止時間",textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setFixedHeight(50);table.addCell(cell);cell = new PdfPCell(new Paragraph(StringUtil.null2blank(rwList.get("ZZKGSJ"))+"至"+StringUtil.null2blank(rwList.get("ZWWGSJ")),textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setColspan(3);table.addCell(cell);cell = new PdfPCell(new Paragraph("總工作量",textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell = new PdfPCell(new Paragraph(StringUtil.null2blank(rwList.get("ZGZL")),textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell = new PdfPCell(new Paragraph("總運費",textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell = new PdfPCell(new Paragraph(StringUtil.null2blank(rwList.get("ZYF")),textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);//第5行cell = new PdfPCell(new Paragraph("開始時間",textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setFixedHeight(50);table.addCell(cell);cell = new PdfPCell(new Paragraph("結(jié)束時間",textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell = new PdfPCell(new Paragraph("工作量",textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell = new PdfPCell(new Paragraph("單價",textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell = new PdfPCell(new Paragraph("運費(元)",textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell = new PdfPCell(new Paragraph("橋路費(元)",textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell = new PdfPCell(new Paragraph("甲方現(xiàn)場人員",textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell = new PdfPCell(new Paragraph("路單復(fù)核人",textfont));//cell.setVerticalAlignment(cell.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);String LKGSJ="";String LWGSJ="";String GZL="";String DJ="";String YF="";String QLF="";String JFXCRY="";String FHRMC="";if (ldList.size()>0){for (int i = 0; i <ldList.size(); i++) {LKGSJ=StringUtil.null2blank(ldList.get(i).get("LKGSJ"));LWGSJ=StringUtil.null2blank(ldList.get(i).get("LWGSJ"));GZL=StringUtil.null2blank(ldList.get(i).get("FHGZL"));DJ=StringUtil.null2blank(ldList.get(i).get("FHDJ"));YF=StringUtil.null2blank(ldList.get(i).get("FHYF"));QLF=StringUtil.null2blank(ldList.get(i).get("FHQLF"));JFXCRY=StringUtil.null2blank(ldList.get(i).get("JFXCRY"));;FHRMC=StringUtil.null2blank(ldList.get(i).get("FHRMC"));//設(shè)置編號單元格PdfPCell cell11=new PdfPCell(new Paragraph(LKGSJ,textfont));PdfPCell cell22=new PdfPCell(new Paragraph(LWGSJ,textfont));PdfPCell cell33=new PdfPCell(new Paragraph(GZL,textfont));PdfPCell cell44=new PdfPCell(new Paragraph(DJ,textfont));PdfPCell cell55=new PdfPCell(new Paragraph(YF,textfont));PdfPCell cell66=new PdfPCell(new Paragraph(QLF,textfont));PdfPCell cell77=new PdfPCell(new Paragraph(JFXCRY,textfont));PdfPCell cell88=new PdfPCell(new Paragraph(FHRMC,textfont));//單元格水平對齊方式cell11.setHorizontalAlignment(Element.ALIGN_CENTER);cell11.setVerticalAlignment(cell.ALIGN_MIDDLE);cell11.setFixedHeight(50);//單元格垂直對齊方式cell22.setHorizontalAlignment(Element.ALIGN_CENTER);cell22.setVerticalAlignment(Element.ALIGN_CENTER);cell22.setVerticalAlignment(cell.ALIGN_MIDDLE);cell33.setHorizontalAlignment(Element.ALIGN_CENTER);cell33.setVerticalAlignment(Element.ALIGN_CENTER);cell33.setVerticalAlignment(cell.ALIGN_MIDDLE);cell44.setHorizontalAlignment(Element.ALIGN_CENTER);cell44.setVerticalAlignment(Element.ALIGN_CENTER);cell44.setVerticalAlignment(cell.ALIGN_MIDDLE);cell55.setHorizontalAlignment(Element.ALIGN_CENTER);cell55.setVerticalAlignment(Element.ALIGN_CENTER);cell55.setVerticalAlignment(cell.ALIGN_MIDDLE);cell66.setHorizontalAlignment(Element.ALIGN_CENTER);cell66.setVerticalAlignment(Element.ALIGN_CENTER);cell66.setVerticalAlignment(cell.ALIGN_MIDDLE);cell77.setHorizontalAlignment(Element.ALIGN_CENTER);cell77.setVerticalAlignment(Element.ALIGN_CENTER);cell77.setVerticalAlignment(cell.ALIGN_MIDDLE);cell88.setHorizontalAlignment(Element.ALIGN_CENTER);cell88.setVerticalAlignment(Element.ALIGN_CENTER);cell88.setVerticalAlignment(cell.ALIGN_MIDDLE);table.addCell(cell11);table.addCell(cell22);table.addCell(cell33);table.addCell(cell44);table.addCell(cell55);table.addCell(cell66);table.addCell(cell77);table.addCell(cell88);}document.add(table);document.close();}upload(rwbh);} catch (Exception e) {System.out.println("file create exception");}4.效果圖
總結(jié)
以上是生活随笔為你收集整理的java后台导出pdf,基础用法和样例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Conflux CTO 伍鸣博士出席 2
- 下一篇: 移动开发之我见 ——移动WEB