java pdf 工具_Java_iText_PDF—生成PDF工具
/*** PDF工具*/
public classPdfUtils {/*** 生成
*@paramiouData 借据数据
*@paramplanList 还款计划List
*@paramaccountsList 收本金账户
*@paraminterstAccountsList 收息账户
*@paramorderCode
*@return
*/
public static String turnToPdf(LoanIouData iouData,List planList, List accountsList, ListinterstAccountsList, String orderCode){
String basePath= PropertiesUtil.getValue("pdf.path","/application.properties");
File file= newFile(basePath);if(!file.exists()){
file.mkdirs();
}
String path= "";try{//创建文件
Document document = newDocument();//建立一个书写器
path = basePath+orderCode+"_还款计划表.pdf";
PdfWriter writer= PdfWriter.getInstance(document, newFileOutputStream(path));//打开文件
document.open();//中文字体,解决中文不能显示问题
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font font= new Font(bfChinese);//正常字体
Font fontBold = new Font(bfChinese, 12, Font.BOLD);//正常加粗字体
Font fontBig = new Font(bfChinese, 20);//大字体
Font fontBigBold = new Font(bfChinese, 20, Font.BOLD);//加粗大字体//添加主题
Paragraph theme = new Paragraph("还款计划表", fontBigBold);
theme.setAlignment(Element.ALIGN_CENTER);
document.add(theme);//借款信息
Paragraph peopleInfo = new Paragraph("借款人:"+iouData.getBorrower()+" "+"借款金额:"+iouData.getLoanAmount()+"万元", font);
peopleInfo.setAlignment(Element.ALIGN_CENTER);
document.add(peopleInfo);//加入空行//Paragraph blankRow = new Paragraph(18f, " ");//document.add(blankRow);//TODO Table1 还款计划 : 3列的表.-------------------------------------
PdfPTable table1 = new PdfPTable(3);
table1.setWidthPercentage(90); //宽度100%填充
table1.setSpacingBefore(20f); //前间距
table1.setSpacingAfter(20f); //后间距
List listRow =table1.getRows();//设置列宽
float[] columnWidths ={1f, 2f, 3f};
table1.setWidths(columnWidths);//行1
PdfPCell cells0[] = new PdfPCell[3];
PdfPRow row0= newPdfPRow(cells0);//单元格
cells0[0] = new PdfPCell(new Paragraph("期数", fontBold));//单元格内容
cells0[0].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells0[0].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells0[0].setFixedHeight(25f);
cells0[0].setBackgroundColor(BaseColor.LIGHT_GRAY);
cells0[1] = new PdfPCell(new Paragraph("日期", fontBold));
cells0[1].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells0[1].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells0[1].setBackgroundColor(BaseColor.LIGHT_GRAY);
cells0[2] = new PdfPCell(new Paragraph("金额(元)", fontBold));
cells0[2].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells0[2].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells0[2].setBackgroundColor(BaseColor.LIGHT_GRAY);
listRow.add(row0);//插入还款内容
for(LoanRepaymentPlan plan : planList) {
PdfPCell cells[]= new PdfPCell[3];
PdfPRow row= newPdfPRow(cells);
cells[0] = new PdfPCell(newParagraph(String.valueOf(plan.getNum())));
cells[0].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells[0].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells[0].setFixedHeight(25f);
cells[1] = new PdfPCell(new Paragraph(String.valueOf(DateFormatUtils.format(plan.getRepaymentTime(), "yyyy/MM/dd"))));
cells[1].setFixedHeight(25f);
cells[1].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells[1].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells[2] = new PdfPCell(newParagraph(String.valueOf(plan.getReturnAmount())));
cells[2].setFixedHeight(25f);
cells[2].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells[2].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中//把第单元格添加到集合(行)
listRow.add(row);
}//TODO Table2 账户列表 : 2列的表.------------------------------------------------------------------------
PdfPTable table2= new PdfPTable(2);
table2.setWidthPercentage(90); //宽度100%填充
table2.setSpacingBefore(20f); //前间距
table2.setSpacingAfter(20f); //后间距
List listRow2 =table2.getRows();//设置列宽
float[] columnWidths2 ={1f, 2f};
table2.setWidths(columnWidths2);//TODO --第一部分
PdfPCell cells2[] = new PdfPCell[2];
PdfPRow row2= newPdfPRow(cells2);
cells2[0] = new PdfPCell(new Paragraph("还息账号信息", fontBold));//单元格内容
cells2[0].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells2[0].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells2[0].setFixedHeight(25f);
cells2[0].setBackgroundColor(BaseColor.LIGHT_GRAY);
cells2[0].setColspan(2);//合并单元格
listRow2.add(row2);for(TransferAccount interstAccount : interstAccountsList){
PdfPCell cells3[]= new PdfPCell[2];
PdfPRow row3= newPdfPRow(cells3);
cells3[0] = new PdfPCell(new Paragraph("还息账号", font));//单元格内容
cells3[0].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells3[0].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells3[0].setFixedHeight(25f);
cells3[1] = new PdfPCell(new Paragraph(interstAccount.getCertPan(), font));//单元格内容
cells3[1].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells3[1].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells3[1].setFixedHeight(25f);
listRow2.add(row3);
PdfPCell cells4[]= new PdfPCell[2];
PdfPRow row4= newPdfPRow(cells4);
cells4[0] = new PdfPCell(new Paragraph("还息户名", font));//单元格内容
cells4[0].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells4[0].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells4[0].setFixedHeight(25f);
cells4[1] = new PdfPCell(new Paragraph(interstAccount.getName(), font));//单元格内容
cells4[1].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells4[1].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells4[1].setFixedHeight(25f);
listRow2.add(row4);
PdfPCell cells5[]= new PdfPCell[2];
PdfPRow row5= newPdfPRow(cells5);
cells5[0] = new PdfPCell(new Paragraph("还息开户行", font));//单元格内容
cells5[0].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells5[0].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells5[0].setFixedHeight(25f);
cells5[1] = new PdfPCell(new Paragraph(interstAccount.getOpenBankName(), font));//单元格内容
cells5[1].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells5[1].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells5[1].setFixedHeight(25f);
listRow2.add(row5);
}//TODO --第2部分
PdfPCell cells6[] = new PdfPCell[2];
PdfPRow row6= newPdfPRow(cells6);
cells6[0] = new PdfPCell(new Paragraph("还本金账号信息", fontBold));//单元格内容
cells6[0].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells6[0].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells6[0].setFixedHeight(25f);
cells6[0].setBackgroundColor(BaseColor.LIGHT_GRAY);
cells6[0].setColspan(2);//合并单元格
listRow2.add(row6);for(TransferAccount account : accountsList){
PdfPCell cells7[]= new PdfPCell[2];
PdfPRow row7= newPdfPRow(cells7);
cells7[0] = new PdfPCell(new Paragraph("还本金账号", font));//单元格内容
cells7[0].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells7[0].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells7[0].setFixedHeight(25f);
cells7[1] = new PdfPCell(new Paragraph(account.getCertPan(), font));//单元格内容
cells7[1].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells7[1].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells7[1].setFixedHeight(25f);
listRow2.add(row7);
PdfPCell cells8[]= new PdfPCell[2];
PdfPRow row8= newPdfPRow(cells8);
cells8[0] = new PdfPCell(new Paragraph("还本金户名", font));//单元格内容
cells8[0].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells8[0].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells8[0].setFixedHeight(25f);
cells8[1] = new PdfPCell(new Paragraph(account.getName(), font));//单元格内容
cells8[1].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells8[1].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells8[1].setFixedHeight(25f);
listRow2.add(row8);
PdfPCell cells9[]= new PdfPCell[2];
PdfPRow row9= newPdfPRow(cells9);
cells9[0] = new PdfPCell(new Paragraph("还本金开户行", font));//单元格内容
cells9[0].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells9[0].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells9[0].setFixedHeight(25f);
cells9[1] = new PdfPCell(new Paragraph(account.getOpenBankName(), font));//单元格内容
cells9[1].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
cells9[1].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
cells9[1].setFixedHeight(25f);
listRow2.add(row9);
}//把表格添加到文件中
document.add(table1);
document.add(table2);//关闭文档
document.close();//关闭书写器
writer.close();
}catch(Exception ex){
ex.printStackTrace();
}returnpath;
}
}
java pdf 工具_Java_iText_PDF—生成PDF工具相关推荐
- java根据pdf模版动态生成pdf
java根据pdf模版动态生成pdf packagecom.utils;importjava.io.ByteArrayOutputStream;importjava.io.File;importjav ...
- java在linux生成pdf文件,从 Java 应用程序动态生成 PDF 文件
简介: 如果您的应用程序需要动态生成 PDF 文档,那么您需要 iText 库.开源的 iText 库使得 PDF 的创建变得轻松易行.本文介绍了 iText 并提供了一个使用它从 Java 技术应用 ...
- django生成文件txt、pdf(在生成 PDF 文件之前,需要安装 ReportLab 库)
from django.http import HttpResponse def download_file(request): # Text file #response = HttpRespons ...
- 利用itext工具编辑生成pdf
1.先用word做出界面 2.把word文档转换成pdf输出 3.用Adobe Acrobat 打开你刚刚用word转换成的pdf,选择"创建PDF表单" 4.选择刚刚生成的pdf ...
- java pdf模板填充生成pdf打印 (亲测有效)
//先要制作好pdf模板(可以在word 里面画好,导出保存pdf文件), 下载Adobe Acrobat DC 工具 后打开 pdf 里面带格式的,然后 点击 准备表单按钮 你可以拖动 文本 和文本 ...
- java xsl转换pdf_Java 生成PDF文档-阿里云开发者社区
最近项目需要实现PDF下载的功能,由于没有这方面的经验,从网上花了很长时间才找到相关的资料.整理之后,发现有如下几个框架可以实现这个功能. 1. 开源框架支持 iText,生成PDF文档,还支持将XM ...
- 自动生成PDF文件(Java通过PDF模板自动生成PDF)
思路: 1.创建PDF模板(先创建对应的excel文件,创建好后另存为PDF文件)即可. 2.使用Adobe Acrobat DC工具打开PDF文件,设置自己想要替换的内容. 3.maven项目引入依 ...
- java itext根据模板生成pdf
很久没有更新过了,稍微闲一点,顺势总结下N久之前用到的小技巧. 这里生成pdf主要使用itext.jar.如想生成一个pdf,其实很简单的啦!第一种:全部使用代码生成:第二种:根据pdf模板生成.当前 ...
- JAVA 使用Itext模板生成pdf,解决图片插入,文本域超出字体缩放,半自动换行
1.前言 前一段时间遇到一个制作Pdf的业务,自己下来摸索了一下,基本上解决.将其中遇到的几个问题及解决方法做以记录,仅供大家参考. 首先在这里对于刚接触该类型业务的同学说明下,ItexPdf支持使用 ...
最新文章
- 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫
- css菜单缓慢滑动_如何使用HTML,CSS和JavaScript构建滑动菜单栏
- matlab 级联cic,Matlab中CIC滤波器的应用
- android device monitor命令行窗口在哪里_Vulkan在Android使用Compute shader
- 阅读替换净化规则_usmile电动牙刷头适配Y1/Y4/45度小白刷大理石一号刷P1替换激泡...
- java压缩对象_Java 对象指针压缩
- HTML5知识点汇总
- 我眼中的分布式系统可观测性
- android设置view透明度渐变,android中 怎么实现一张图片从左到右透明度改变渐变消失的动画效果 Android 动态渐变 泽.. - 贪吃蛇学院-专业IT技术平台...
- HANA SQL基础
- 西门子PID程序,西门子PLC 1200和G120西门子 变频器Modbud RTU通讯,带西门子触摸屏,带变频器参数/Modbus通讯报西门子PID程序
- mysql字段长度的作用_数据库字段的长度 作用
- java.exe占用8081端口
- Android acra 日志上报,android acra错误日志上报
- 2014阿里巴巴实习生招聘-研发工程师笔试题/网络编程小结
- 浅谈“面向接口编程” :依赖反转 IOC 与 DI (容器控制反转与依赖注入)
- 初级前端工程师课程导航-姜威-专题视频课程
- 回合制html代码,老框架新思路 最新好玩的回合制网页游戏盘点
- flex中dataGrid的编辑功能 精华
- 【基础篇】C#基础知识——面向对象