package com.infrastructure.project.common.util; import java.awt.Color; import java.io.File; import java.io.FileOutputStream; import java.util.List; import com.infrastructure.project.common.SysConstant; import com.lowagie.text.Cell; import com.lowagie.text.Document; import com.lowagie.text.Element; import com.lowagie.text.Font; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.Phrase; import com.lowagie.text.Rectangle; import com.lowagie.text.Table; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.PdfWriter; public class ExportPdfUtil { public static void exportPdf(String fileName,String filePath,List listLable ,List listData) { Document document = new Document(PageSize.A4.rotate(), 50, 50, 50, 50); try { File file = new File(filePath); BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); Font FontChinese = new Font(bfChinese, 12, Font.NORMAL); Font FontChina = new Font(bfChinese, 24, Font.NORMAL); if (!file.exists()) { file.mkdirs(); } PdfWriter.getInstance(document, new FileOutputStream(filePath+fileName+SysConstant.nameSuffix.NAMESUFFIX_PDF)); document.open(); Table datatable = new Table(listLable.size()); datatable.setWidth(100); datatable.setPadding(3); Cell cell = new Cell(new Phrase(fileName,FontChina)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setLeading(30); cell.setColspan(listLable.size()); cell.setBorder(Rectangle.NO_BORDER); cell.setBackgroundColor(new Color(0xC0, 0xC0, 0xC0)); datatable.addCell(cell); datatable.setBorderWidth(2); datatable.setAlignment(1); for(int i =0;i<listLable.size();i++){ datatable.addCell(new Paragraph(listLable.get(i).toString(),FontChinese)); } datatable.endHeaders(); datatable.setBorderWidth(1); for (int j = 0; j < listData.size(); j++) { List a = (List) listData.get(j); for(int o = 0;o<a.size();o++){ datatable.addCell(new Paragraph(a.get(o) == null ?"":a.get(o).toString(),FontChinese)); } } document.add(datatable); } catch (Exception e) { e.printStackTrace(); } document.close(); } }
package poi.itext;
import java.io.FileOutputStream; import java.io.IOException; import java.awt.Color;
import com.lowagie.text.*; import com.lowagie.text.pdf.*; import com.lowagie.text.pdf.BaseFont;
/** * 创建Pdf文档 * @author Administrator * */
public class HelloPdf { public static void main(String[] args)throws Exception { BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);
// 第一步,创建document对象 Rectangle rectPageSize = new Rectangle(PageSize.A4); //下面代码设置页面横置 //rectPageSize = rectPageSize.rotate(); //创建document对象并指定边距 Document doc = new Document(rectPageSize,50,50,50,50); Document document = new Document(); try { // 第二步,将Document实例和文件输出流用PdfWriter类绑定在一起 //从而完成向Document写,即写入PDF文档 PdfWriter.getInstance(document,new FileOutputStream("src/poi/itext/HelloWorld.pdf")); //第3步,打开文档 document.open(); //第3步,向文档添加文字. 文档由段组成 document.add(new Paragraph("Hello World"));
Paragraph par = new Paragraph("世界你好",FontChinese); document.add(par);
PdfPTable table = new PdfPTable(3); for(int i=0;i<12;i++) { if (i == 0) { PdfPCell cell = new PdfPCell(); cell.setColspan(3); cell.setBackgroundColor(new Color(180,180,180)); cell.addElement(new Paragraph("表格头" , FontChinese)); table.addCell(cell); } else { PdfPCell cell = new PdfPCell(); cell.addElement(new Paragraph("表格内容" , FontChinese)); table.addCell(cell); } } document.add(table);
} catch (DocumentException de) { System.err.println(de.getMessage()); } catch (IOException ioe) { System.err.println(ioe.getMessage()); } //关闭document document.close(); System.out.println("生成HelloPdf成功!"); } }