`

用iText的导出pdf格式

 
阅读更多
package cn.com.ly.action.statistic;
import java.awt.Color;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.xml.rpc.Call;
//这是新版的API
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import cn.com.ly.pojo.Goodsinfo;
import cn.com.ly.pojo.Orders;
import cn.com.ly.pojo.Sellerinfo;
import cn.com.ly.pojo.Supplierinfo;
 
//下面是老版的API
//import com.lowagie.text.Cell;
//import com.lowagie.text.Document;
//import com.lowagie.text.DocumentException;
//import com.lowagie.text.Font;
//import com.lowagie.text.PageSize;
//import com.lowagie.text.Paragraph;
//import com.lowagie.text.pdf.BaseFont;
//import com.lowagie.text.pdf.PdfCell;
//import com.lowagie.text.pdf.PdfPCell;
//import com.lowagie.text.pdf.PdfPTable;
//import com.lowagie.text.pdf.PdfTable;
//import com.lowagie.text.pdf.PdfWriter;
 
public class PdfExportHelper {
 //设置中文字体
 private static BaseFont bfChinese = null;
 //设置各种文本格式
 private static Font f2 = null;
 private static Font f6 = null;
 private static Font f8 = null;
 private static Font f10 = null;
 private static Font f12 = null;
 private static String[] title = null;
 static{
  try {
   //这样可以打印出中文。
   bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
   f2 = new Font(bfChinese,2,Font.NORMAL);
   f6 = new Font(bfChinese, 6, Font.NORMAL);
   f8 = new Font(bfChinese, 8, Font.NORMAL);
   f10 = new Font(bfChinese, 10, Font.NORMAL);
   f12 = new Font(bfChinese, 12, Font.BOLD);
  } catch (DocumentException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
  title = new String[]{
    "订单号","商品名","订单来源","座席工号","经销商名称","订单创建日期","商品价格","成本价","数量","总价" 
    //"1","","2","3","4","5","6","7","8","9"
  };
 }
 
 public static void exportPdf(List<Orders> list,OutputStream outputStream){
//首先定义个document
  Document document = new Document(PageSize.A4.rotate());
  try {
//然后得到pdfWriter一般用不到,高级的用的到
   PdfWriter.getInstance(document, outputStream);
   document.open();
    System.out.println(new String("sfs就是开发商"));
//把所有的信息都增加到document就好了
    document.add(new Paragraph("就是开发商是开放式好好lsjdfjsjf sfk", f12));
   document.add(PdfExportHelper.createPdfPTable(PdfExportHelper.title,
     list));
  } catch (DocumentException e) {
   e.printStackTrace();
  }  
  document.close();
   
 }
 //创建PdfPTable(创建表格)
 private static PdfPTable createPdfPTable(String[] title,List<Orders> list){
  PdfPTable pdfpTable = new PdfPTable(title.length);
  pdfpTable.setWidthPercentage(100);
  pdfpTable.setHorizontalAlignment(pdfpTable.ALIGN_LEFT);
  //设置table的title
  PdfExportHelper.setTitle(title,pdfpTable);
  //设置table的正文
  PdfExportHelper.setContext(list,pdfpTable);
  return pdfpTable;
 }
 
 //设置table的title
 private static PdfPTable setTitle(String[] title,PdfPTable pdfpTable ){
  PdfPCell cell = new PdfPCell();
//  cell.setBackgroundColor(new Color(213, 141, 69));
  cell.setBackgroundColor(new BaseColor(213,141,69));
  cell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER);
  for(int i = 0; i < title.length; i++){
    cell.setPhrase(new Paragraph(title[i],PdfExportHelper.f8));
   pdfpTable.addCell(cell);
  }
  return pdfpTable;
 }
 
 //设置table的正文
 private static PdfPTable setContext(List<Orders> list,PdfPTable pdfpTable){
  PdfPCell cell = new PdfPCell();
  cell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER);
  if((list != null)&& list.size()!=0){
   for(int i = 0; i<list.size();i++){
    Orders order = list.get(i);
    cell.setPhrase(new Paragraph(order.getOrderCode(),f8));
    pdfpTable.addCell(cell);
    System.out.println(order.getOrderCode());
    cell.setPhrase(new Paragraph(order.getGoodsinfo().getGoodsTitle(),f8));
    pdfpTable.addCell(cell);
    cell.setPhrase(new Paragraph(order.getSellerinfo().getSellerName(),f8));
    pdfpTable.addCell(cell);
    cell.setPhrase(new Paragraph(order.getOrderSellerCode(),f8));
    pdfpTable.addCell(cell);
    cell.setPhrase(new Paragraph(order.getSupplier().getSupplyName(),f8));
    pdfpTable.addCell(cell);
    //日期格式要转变下
    cell.setPhrase(new Paragraph(new SimpleDateFormat("yyyy-MM-dd").format(order.getOrderCreateTime()),f8));
    pdfpTable.addCell(cell);
    cell.setPhrase(new Paragraph(order.getGoodsPrice()!=null?order.getGoodsPrice().toString():"",f8));
    pdfpTable.addCell(cell);
    cell.setPhrase(new Paragraph(order.getGoodsCost()!=null?order.getGoodsCost().toString():"",f8));
    pdfpTable.addCell(cell);
    cell.setPhrase(new Paragraph(order.getGoodsSum()!=null?order.getGoodsSum().toString():"",f8));
    pdfpTable.addCell(cell);
    cell.setPhrase(new Paragraph(order.getOrderTotal() !=null?order.getOrderTotal().toString():"",f8));
    pdfpTable.addCell(cell);
   }
  }
  return pdfpTable;
 }
 
//自己写的测试main方法
 public static void main(String[] args) throws FileNotFoundException {
  List<Orders> list = new ArrayList<Orders>();
  Orders order = new Orders(); Goodsinfo goodsinfo = new Goodsinfo();
  goodsinfo.setGoodsTitle("002");
  order.setOrderCode("001");order.setGoodsinfo(goodsinfo);
  Sellerinfo sellerinfo = new Sellerinfo();
  sellerinfo.setSellerName("003");
  order.setSellerinfo(sellerinfo);
  Supplierinfo supplier =new Supplierinfo();
  supplier.setSupplyName("好好发fafsfs");
  order.setOrderSellerCode("004");order.setSupplier(supplier);
  order.setOrderCreateTime(new Date());
  order.setGoodsPrice(444d);
  order.setGoodsCost(555d);
  order.setGoodsSum(666l);
  order.setOrderTotal(777d);
  list.add(order);
  FileOutputStream file = new FileOutputStream("c:/hao.pdf");
  PdfExportHelper.exportPdf(list, file);
 }
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics