Java iText 生成PDF表格
2017-08-14 18:45
405 查看
近期项目需要将计算结果(二维表格)导出为PDF,所需jar包:
然后新建PDF文档:
// 创建Document对象(页面的大小为A4,左、右、上、下的页边距为10)
Document document = new Document(PageSize.A4, 10, 10, 10, 10);
// 建立书写器
PdfWriter.getInstance(document, new FileOutputStream("F:\\test.pdf"));
// 打开文档
document.open();
// 使用iTextAsian.jar中的字体
BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font font = new Font(baseFont);
Table table = PDFTest.setTable(source1,source2,receiver,json); //表格设计
document.add(table);
// 关闭文档
document.close();其中字体及表格单元的设置可参考:
/**
* 设置字体编码格式
* @return
*/
public static Font setFont(){
BaseFont baseFont = null;
try {
baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Font font = new Font(baseFont, 8, Font.NORMAL,Color.BLUE);
return font;
}
/**
* 设置cell
* @param name
* @return
* @throws BadElementException
*/
public static Cell setTableHeader(String name) throws BadElementException{
Cell cell = new Cell(new Phrase(name,PDFTest.setFont()));
//单元格水平对齐方式
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
//单元格垂直对齐方式
cell.setVerticalAlignment(Element.ALIGN_CENTER);
// cell.setHeader(true);
//cell.setBackgroundColor(Color.RED);
return cell;
}
表格设置:
public static Table setTable(List<String> source1,List<String> source2,List<String> receiver,JSONObject json) throws BadElementException{
Table table = new Table(2+source1.size()+source2.size());//参数为表格的列数
table.setBorderWidth(1);
// 创建表头
Cell cell = PDFTest.setTableHeader("");
cell.setColspan(2);//合并列
cell.setRowspan(2);//合并行
table.addCell(cell);
Cell cell2 = PDFTest.setTableHeader("场景1");
cell2.setColspan(source1.size());
table.addCell(cell2);
Cell cell3 = PDFTest.setTableHeader("场景2");
cell3.setColspan(source2.size());
table.addCell(cell3);
for(int i=0;i<source1.size();i++){
Cell cell4 = PDFTest.setTableHeader(source1.get(i));
table.addCell(cell4);
}
for(int i=0;i<source2.size();i++){
Cell cell4 = PDFTest.setTableHeader(source2.get(i));
table.addCell(cell4);
}
for(int i=0;i<receiver.size()*2;i=i+2){
Cell cell5 = PDFTest.setTableHeader(receiver.get(i/2));
cell5.setRowspan(2);
table.addCell(cell5);
Cell cell7 = PDFTest.setTableHeader("昼间");
table.addCell(cell7);
JSONArray array = (JSONArray) json.get(i+"");
for(int j=0;j<array.size();j++){
Cell cell6 = PDFTest.setTableHeader(array.getString(j));
table.addCell(cell6);
}
Cell cell8 = PDFTest.setTableHeader("夜间");
table.addCell(cell8);
JSONArray array2 = (JSONArray) json.get(i+1+"");
for(int j=0;j<array2.size();j++){
Cell cell6 = PDFTest.setTableHeader(array2.getString(j));
table.addCell(cell6);
}
}
return table;
}
然后,便可得自定义可变表头含表格的PDF文件。
可参考博客:(扩展学习)
1.点击打开链接
2.java使用iText生成pdf表格
3.Java导出pdf表格
4.Java iText导出pdf功能实现
5.java动态生成pdf含表格table和 合并两个pdf文件功能
6.使用iText在word文档中插入复杂的表格
7.利用itext操作pdf从数据库导出大量数据--功能汇总(一)
8.java 如何在pdf中生成表格
9. java根据模板生成pdf文件并导出
然后新建PDF文档:
// 创建Document对象(页面的大小为A4,左、右、上、下的页边距为10)
Document document = new Document(PageSize.A4, 10, 10, 10, 10);
// 建立书写器
PdfWriter.getInstance(document, new FileOutputStream("F:\\test.pdf"));
// 打开文档
document.open();
// 使用iTextAsian.jar中的字体
BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font font = new Font(baseFont);
Table table = PDFTest.setTable(source1,source2,receiver,json); //表格设计
document.add(table);
// 关闭文档
document.close();其中字体及表格单元的设置可参考:
/**
* 设置字体编码格式
* @return
*/
public static Font setFont(){
BaseFont baseFont = null;
try {
baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Font font = new Font(baseFont, 8, Font.NORMAL,Color.BLUE);
return font;
}
/**
* 设置cell
* @param name
* @return
* @throws BadElementException
*/
public static Cell setTableHeader(String name) throws BadElementException{
Cell cell = new Cell(new Phrase(name,PDFTest.setFont()));
//单元格水平对齐方式
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
//单元格垂直对齐方式
cell.setVerticalAlignment(Element.ALIGN_CENTER);
// cell.setHeader(true);
//cell.setBackgroundColor(Color.RED);
return cell;
}
表格设置:
public static Table setTable(List<String> source1,List<String> source2,List<String> receiver,JSONObject json) throws BadElementException{
Table table = new Table(2+source1.size()+source2.size());//参数为表格的列数
table.setBorderWidth(1);
// 创建表头
Cell cell = PDFTest.setTableHeader("");
cell.setColspan(2);//合并列
cell.setRowspan(2);//合并行
table.addCell(cell);
Cell cell2 = PDFTest.setTableHeader("场景1");
cell2.setColspan(source1.size());
table.addCell(cell2);
Cell cell3 = PDFTest.setTableHeader("场景2");
cell3.setColspan(source2.size());
table.addCell(cell3);
for(int i=0;i<source1.size();i++){
Cell cell4 = PDFTest.setTableHeader(source1.get(i));
table.addCell(cell4);
}
for(int i=0;i<source2.size();i++){
Cell cell4 = PDFTest.setTableHeader(source2.get(i));
table.addCell(cell4);
}
for(int i=0;i<receiver.size()*2;i=i+2){
Cell cell5 = PDFTest.setTableHeader(receiver.get(i/2));
cell5.setRowspan(2);
table.addCell(cell5);
Cell cell7 = PDFTest.setTableHeader("昼间");
table.addCell(cell7);
JSONArray array = (JSONArray) json.get(i+"");
for(int j=0;j<array.size();j++){
Cell cell6 = PDFTest.setTableHeader(array.getString(j));
table.addCell(cell6);
}
Cell cell8 = PDFTest.setTableHeader("夜间");
table.addCell(cell8);
JSONArray array2 = (JSONArray) json.get(i+1+"");
for(int j=0;j<array2.size();j++){
Cell cell6 = PDFTest.setTableHeader(array2.getString(j));
table.addCell(cell6);
}
}
return table;
}
然后,便可得自定义可变表头含表格的PDF文件。
可参考博客:(扩展学习)
1.点击打开链接
2.java使用iText生成pdf表格
3.Java导出pdf表格
4.Java iText导出pdf功能实现
5.java动态生成pdf含表格table和 合并两个pdf文件功能
6.使用iText在word文档中插入复杂的表格
7.利用itext操作pdf从数据库导出大量数据--功能汇总(一)
8.java 如何在pdf中生成表格
9. java根据模板生成pdf文件并导出
相关文章推荐
- java使用iText生成pdf表格
- java使用iText生成pdf表格
- Java iText 动态 生成 PDF 文档表格中文问题
- java程序猿的成长记录之(一)用itext创建并生成pdf
- java使用IText生成PDF格式文件
- (例)Java生成PDF图片 iText
- 【java Itext Pdf】itext pdf隔行换色 itext5添加表格背景颜色
- (例)Java生成PDF报表 iText
- java 如何在pdf中生成表格
- Java IText使用PDF模板 生成 输出PDF
- java 如何在pdf中生成表格
- 如何利用iText在java程序中生成PDF文件
- 用Java生成PDF,iText使用.
- 生成PDF文件-使用iText制作复杂表格
- JAVA 生成一个表格的 PDF文件
- java 使用itextpdf.jar和itext-asian.jar根据pdf模板填写数据后生成一个新的pdf文件
- 生成PDF文件的Java库iText
- 使用Java组件itext 生成pdf介绍
- 使用Java组件itext 生成pdf介绍
- java通过itext生成PDF,设置单元格cell的最大高度 以及 itext7初尝