[学习笔记]Java生成简单的PDF工具类
2017-03-14 15:37
423 查看
1.工具类代码
2.jar包
itextpdf-5.5.6.jar
/** * 完成功能:输出具有标题和表格的简单PDF * @param data 数据内容(JSON) * @param filePath 生成PDF的路径 * @param fontPath 字体路径 * @param dateString 时间(无需求不需添加) * @return * @throws Exception */ public static void getPDFBas(String data, String filePath, String fontPath, String dateString) throws Exception { //1.基本页面设置 Document document = new Document(PageSize.A4); //页面尺寸 PdfWriter.getInstance(document, new FileOutputStream(filePath)); document.open(); // 创建字体 BaseFont baseFont = BaseFont.createFont(fontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED); Font font = new Font(baseFont, 8, Font.BOLD); Font font1 = new Font(baseFont, 6, Font.NORMAL); Font font2 = new Font(baseFont, 6, Font.NORMAL); Font font3 = new Font(baseFont, 5, Font.NORMAL); //2.设置首行(题目/副标题) Paragraph pt = new Paragraph("题目", new Font(baseFont, 12, Font.BOLD));// 设置字体样式 pt.setAlignment(1);// 设置文字居中 0靠左 1,居中 2,靠右 document.add(pt); Paragraph pt1 = new Paragraph("副标题", new Font(baseFont, 7, Font.BOLD)); pt1.setAlignment(1); document.add(pt1); //3.数据处理 JSONObject jsonObject = new< c6d2 /span> JSONObject(data); //将JSON形式的字符串转成JSON对象 JSONArray phfBasJsonArray = jsonObject.getJSONArray("jsonArray"); //得到JSON中的"jsonArray" //4.设置表格 PdfPTable phfBasTable = new PdfPTable(12); PdfPCell phfBas; //4.1 设置表格第一行 Paragraph pa = new Paragraph("", font); pa.setAlignment(0); phfBas = new PdfPCell(); phfBas.setHorizontalAlignment(Element.ALIGN_LEFT); phfBas.setPhrase(pa); phfBas.setColspan(12); phfBasTable.addCell(phfBas); Paragraph nameParagraph = new Paragraph("***", font); pa.setAlignment(1); phfBas = new PdfPCell(); phfBas.setHorizontalAlignment(Element.ALIGN_CENTER); phfBas.setPhrase(nameParagraph); phfBas.setColspan(2); phfBasTable.addCell(phfBas); Paragraph idcardParagraph = new Paragraph("****", font); pa.setAlignment(1); phfBas = new PdfPCell(); phfBas.setHorizontalAlignment(Element.ALIGN_CENTER); phfBas.setPhrase(idcardParagraph); phfBas.setColspan(2); phfBasTable.addCell(phfBas); Paragraph phoneParagraph = new Paragraph("***", font); pa.setAlignment(1); phfBas = new PdfPCell(); phfBas.setHorizontalAlignment(Element.ALIGN_CENTER); phfBas.setPhrase(phoneParagraph); phfBas.setColspan(2); phfBasTable.addCell(phfBas); Paragraph pSucY = new Paragraph("****", font); pa.setAlignment(1); phfBas = new PdfPCell(); phfBas.setHorizontalAlignment(Element.ALIGN_CENTER); phfBas.setPhrase(pSucY); phfBas.setColspan(2); phfBasTable.addCell(phfBas); Paragraph pFailY = new Paragraph("****", font); pa.setAlignment(1); phfBas = new PdfPCell(); phfBas.setHorizontalAlignment(Element.ALIGN_CENTER); phfBas.setPhrase(pFailY); phfBas.setColspan(2); phfBasTable.addCell(phfBas); Paragraph pOveY = new Paragraph("***", font); pa.setAlignment(1); phfBas = new PdfPCell(); phfBas.setHorizontalAlignment(Element.ALIGN_CENTER); phfBas.setPhrase(pOveY); phfBas.setColspan(2); phfBasTable.addCell(phfBas); //4.2遍历JSON中的数据进行表格填充 for (int i = 0; i < phfBasJsonArray.length(); i++) { JSONObject phfBasJsonObject = phfBasJsonArray.getJSONObject(i); String nam = phfBasJsonObject.getString("name"); String idcar = phfBasJsonObject.getString("idcar"); String phon = phfBasJsonObject.getString("phon"); String suc = phfBasJsonObject.getString("suc"); String fail = phfBasJsonObject.getString("fail"); String ove = phfBasJsonObject.getString("ove"); Paragraph namPara = new Paragraph(nam, font2); phfBas = new PdfPCell(); phfBas.setHorizontalAlignment(Element.ALIGN_CENTER); phfBas.setPhrase(namPara); phfBas.setColspan(2); phfBasTable.addCell(phfBas); Paragraph idcarPara = new Paragraph(idcar, font2); phfBas = new PdfPCell(); phfBas.setHorizontalAlignment(Element.ALIGN_CENTER); phfBas.setPhrase(idcarPara); phfBas.setColspan(2); phfBasTable.addCell(phfBas); Paragraph phonPara = new Paragraph(phon, font2); phfBas = new PdfPCell(); phfBas.setHorizontalAlignment(Element.ALIGN_CENTER); phfBas.setPhrase(phonPara); phfBas.setColspan(2); phfBasTable.addCell(phfBas); Paragraph sucPara = new Paragraph(suc, font2); phfBas = new PdfPCell(); phfBas.setHorizontalAlignment(Element.ALIGN_CENTER); phfBas.setPhrase(sucPara); phfBas.setColspan(2); phfBasTable.addCell(phfBas); Paragraph failPara = new Paragraph(fail, font2); phfBas = new PdfPCell(); phfBas.setHorizontalAlignment(Element.ALIGN_CENTER); phfBas.setPhrase(failPara); phfBas.setColspan(2); phfBasTable.addCell(phfBas); Paragraph ovePara = new Paragraph(ove, font2); phfBas = new PdfPCell(); phfBas.setHorizontalAlignment(Element.ALIGN_CENTER); phfBas.setPhrase(ovePara); phfBas.setColspan(2); phfBasTable.addCell(phfBas); } document.add(new Paragraph("\n")); // 将表格添加到文档中 document.add(phfBasTable); document.close(); }
2.jar包
itextpdf-5.5.6.jar
相关文章推荐
- Java学习笔记(一)用Eclipse把一个简单游戏项目生成可执行的JAR文件
- Java学习笔记43(打印流、IO流工具类简单介绍)
- [学习笔记]JAVA生成Excel工具类
- 【javaweb 学习笔记】 第一课 最简单的登陆
- (Java2D 学习笔记系列) (一)一个简单的图像填充实例及其分析理解
- 我的Java开发学习之旅------>java生成pdf方案
- 黑马程序员---java学习笔记之集合工具类
- Java学习笔记——Java工厂模式之简单工厂
- Java工具类学习笔记
- Java开发学习笔记之二:一个简单的Servlet
- 我的Java开发学习之旅------>介绍一个Java生成PDF的方案
- java学习笔记1 - Mybatis简单实例
- Java菜鸟学习笔记--面向对象篇(十二):Package简单理解
- java 设计模式 学习笔记(1) - 简单工厂模式
- Java学习笔记——doc文档自动生成方法
- 关于java打印功能的最简单实现的学习笔记
- (Java2D 学习笔记系列) (一)一个简单的图像填充实例及其分析理解
- Jfreechart学习笔记7-JFreeChart生成PDF文件
- 学习笔记Java applet简单例子
- java学习笔记3--最简单的代码