您的位置:首页 > 编程语言 > Java开发

[学习笔记]Java生成简单的PDF工具类

2017-03-14 15:37 423 查看
1.工具类代码

/**
* 完成功能:输出具有标题和表格的简单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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: