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); } }
相关推荐
java 使用IText导出PDF(包含图片、表格、文字等等Demo和依赖包),最全IText使用Demo,下载即可用
Itext导出PDF,中文不显示字体,在body上设置font-family: "Arial Unicode MS",同时在java中引入fontResolver.addFont("/ARIALUNI.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); 就可以显示中文了
包含 itext-asian-5.2.0.jar itextpdf-5.5.5.jar
使用ITEXT导出EXCEL工具类使用ITEXT导出EXCEL工具类使用ITEXT导出EXCEL工具类使用ITEXT导出EXCEL工具类使用ITEXT导出EXCEL工具类
itext 导出pdf java demo
下面小编就为大家带来一篇java使用itext导出PDF文本绝对定位(实现方法)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
itext导出PDFitext导出PDF
velocity+itext的整合导出pdf
NULL 博文链接:https://zhaining123129-gmail-com.iteye.com/blog/1832509
itext导出pdf不显示中文 ITextRenderer不显示中文,终极解决方案!!!绝对能解决!!!
NULL 博文链接:https://keep-going.iteye.com/blog/1907664
利用itext操作pdf从数据库导出大量数据 压缩包含需要的jar包、案例源码
c# winform Itext 实现PDF导出简单demo,适合初学者学习
使用IText生成PDF和WORD文档 包括源码和IText所需jar包
itext导出PDF所需JAR包,包含iText-2.1.7.jar iTextAsian.jar
adobe pdf编辑器,解压安装即可使用,配合java利用itextpdf根据模板导出pdf文章中只做模板的方法;
iText生成pdf解决中文不显示字库,pdf凉字不显示,由于生成iText插件生成pdf的时候中文会显示不出来,遇到过的是"凉"字,查到是字体库的原因,网上下载字体库msyh.ttc,生成的时候指定字体库,就可以解决了,小bug一...
代码说明 https://blog.csdn.net/ruixue0117/article/details/77599808?spm=1001.2014.3001.5501
此文档主要讲述了使用Java组件iText来生成PDF,操作PDF
itext导出word和pdf的包,及中文字体.itext系列。itext2.1.7,itext5及其对应的字体