iText生成pdf文档
程序员文章站
2024-03-24 11:42:46
...
package com.ly.test;
import java.awt.Color;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.HeaderFooter;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Phrase;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;
public class ToPdf {
public static void creatPdf(List<Object[]> list){
try {
BaseFont bfChinese = BaseFont.createFont("C:/WINDOWS/Fonts/SIMKAI.TTF",
BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bfChinese, 14, Font.NORMAL);
Font font = new Font(bfChinese, 25, Font.NORMAL);
Document document = new Document(
PageSize.A4,20,20,20,20);
PdfWriter pdfWrite = PdfWriter.getInstance(document,
new FileOutputStream("E:\\totalPlantArea.pdf"));
HeaderFooter footer = new HeaderFooter(new Phrase(), new Phrase());
footer.setBorder(Rectangle.NO_BORDER);
footer.setAlignment(Element.ALIGN_RIGHT);
footer.setPageNumber(2);
document.setFooter(footer);
document.open();
// define table
float[] widths = { 0.25f, 0.25f, 0.25f ,0.25f};
// new 一个3列的table
PdfPTable table = new PdfPTable(4);
// 设置table每一列的宽度,widths里写的是百分比,他们加和需要是1
table.setWidths(widths);
// 设置表格在页面上的宽度,设成100表示可以表格填满页面,但是要去掉页面margin
table.setWidthPercentage(77);
// 设置表格上端的空白距离,类似css中的margin-top:xxpx;这样在给表格加上标题后,标题就不会跟表格重叠在一起了。
table.setSpacingBefore(10f);
table.setSpacingAfter(10f);
PdfPCell number = new PdfPCell();
number.setBackgroundColor(new Color(201, 215, 250));
number.setPhrase(new Phrase("序号",FontChinese));
PdfPCell plant = new PdfPCell();
plant.setBackgroundColor(new Color(201, 215, 250));
plant.setPhrase(new Phrase("作物",FontChinese));
PdfPCell area = new PdfPCell();
area.setBackgroundColor(new Color(201, 215, 250));
area.setPhrase(new Phrase("地块数",FontChinese));
PdfPCell num = new PdfPCell();
num.setBackgroundColor(new Color(201, 215, 250));
num.setPhrase(new Phrase("面积(亩)",FontChinese));
table.addCell(number);
table.addCell(plant);
table.addCell(area);
table.addCell(num);
for (int i = 0; i <list.size(); i++) {
Object[] obj = (Object[])list.get(i);
for(int j=0;j<obj.length;j++){
if(j == 0){
PdfPCell cell = new PdfPCell();
cell.setBackgroundColor(new Color(241, 241, 241));
cell.setPhrase(new Phrase((i+1)+"",FontChinese));
table.addCell(cell);
PdfPCell cell2 = new PdfPCell();
cell2.setBackgroundColor(new Color(241, 241, 241));
cell2.setPhrase(new Phrase(obj[j].toString()+"",FontChinese));
table.addCell(cell2);
}else if(j==1){
PdfPCell cell = new PdfPCell();
cell.setBackgroundColor(new Color(241, 241, 241));
cell.setPhrase(new Phrase(obj[j].toString()+"",FontChinese));
table.addCell(cell);
}else{
PdfPCell cell = new PdfPCell();
cell.setBackgroundColor(new Color(241, 241, 241));
cell.setPhrase(new Phrase(obj[j].toString()+"",FontChinese));
table.addCell(cell);
}
}
}
Paragraph par = new Paragraph("作物面积统计", font);
par.setAlignment(Element.ALIGN_CENTER);
par.setSpacingAfter(20f);
document.add(par);
// 由于设置了table.setSpacingBefore(3f);所以table跟标题不会重合。
document.add(table);
document.newPage();
document.close();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Object[]> li = new ArrayList<Object[]>();
li.add(new Object[]{"瓜果","125","125"});
li.add(new Object[]{"西瓜","125","125"});
li.add(new Object[]{"瓜果","125","125"});
li.add(new Object[]{"西红柿","26","125"});
li.add(new Object[]{"瓜果","125","125"});
ToPdf.creatPdf(li);
}
}
上一篇: itext 生成 pdf
下一篇: itext生成pdf
推荐阅读
-
itext html 生成pdf
-
itext 生成 pdf
-
iText生成pdf文档
-
itext生成pdf
-
将Word/Excel/PPT转换成Html/PDF/图片 博客分类: 文档转换与阅读 文档转换在线阅读word转htmlhtml转office文档查看
-
wps制作pdf模板,Adobe Acrobat DC利用pdf模板做填充数据表单域,在maven项目中利用java生成pdf
-
利用itext操作pdf从数据库导出大量数据--创建PDF表格(三) 博客分类: 开源组件
-
利用itext操作pdf从数据库导出大量数据--创建PDF表格(三) 博客分类: 开源组件
-
利用itext操作pdf从数据库导出大量数据--功能汇总(一) 博客分类: 开源组件 javaitextpdf水印
-
使用poi的hwpf模块操作word文档模版生成想要的文档 demo