itext-asian 生成pdf 之spring boot
来源:互联网 发布:淘宝商家怎么发快递的 编辑:程序博客网 时间:2024/06/06 02:43
jar包放入libs目录:libs/itext-asian-5.2.0.jar配置build.gradle文件:compile fileTree(dir: 'libs', include: 'itext-asian-5.2.0.jar')Service:import com.itextpdf.text.*;import org.springframework.stereotype.Service;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.util.ArrayList;import java.util.Date;import java.util.List;import com.itextpdf.text.BaseColor;import com.itextpdf.text.Document;import com.itextpdf.text.Element;import com.itextpdf.text.Font;import com.itextpdf.text.PageSize;import com.itextpdf.text.Paragraph;import com.itextpdf.text.Rectangle;import com.itextpdf.text.pdf.BaseFont;import com.itextpdf.text.pdf.PdfPCell;import com.itextpdf.text.pdf.PdfPTable;import com.itextpdf.text.pdf.PdfWriter;/** add by hxl*/@Servicepublic class GeneratePdfFileService { public static void generatePdf(String[] tableHerd,List<OrderItems> list, String generateTime, HttpServletRequest request,HttpServletResponse response){ try{ response.setContentType("application/pdf"); response.setContentType("application/pdf;charset=utf-8"); response.setHeader("Content-disposition", "attachment;filename=" + generateTime +".pdf"); Rectangle rect = new Rectangle(PageSize.A4); Document document = new Document(rect); //page size document.setMargins(10, 15, 10, 15); PdfWriter.getInstance(document, response.getOutputStream()); //author document.addTitle("yaoyingli.com"); document.addAuthor("yaoyingli.com"); // 创建字体,设置family,size,style,还可以设置color BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); Font fontChinese = new Font(bfChinese, 8, Font.NORMAL); Font titleChinese = new Font(bfChinese, 20, Font.BOLD); Font BoldChinese = new Font(bfChinese, 14, Font.BOLD); Font subBoldFontChinese = new Font(bfChinese, 8, Font.BOLD); // document.open(); Paragraph title = new Paragraph("进货单",BoldChinese); title.setAlignment(Element.ALIGN_CENTER); title.setLeading(10f); title.setSpacingBefore(30f); title.setSpacingAfter(5f); document.add(title); //clum num ,clum whdth float[] whdths = {10f,12f,20f,15f,15f,15f,20f,10f,15f}; PdfPTable table = new PdfPTable(whdths); table.setWidthPercentage(100); //th PdfPCell cell = null; for (int colNum = 0; colNum < tableHerd.length; colNum++) { cell = new PdfPCell(new Paragraph(tableHerd[colNum],subBoldFontChinese)); cell.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(cell); } //table.getDefaultCell().setPadding(3); //tr data PdfPCell dataCell = new PdfPCell(); dataCell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER); if(list.size()>0 && list !=null){ for (int j=0; j<list.size();j++){ dataCell.setPhrase(new Paragraph(list.get(j).getItem().getChannel().getName().toString(),fontChinese)); table.addCell(dataCell); dataCell.setPhrase(new Paragraph(list.get(j).getItem().getBrand().getName().toString(),fontChinese)); table.addCell(dataCell); dataCell.setPhrase(new Paragraph(list.get(j).getItem().getName().toString(),fontChinese)); table.addCell(dataCell); dataCell.setPhrase(new Paragraph(list.get(j).getSku().getSkuValByType(6).toString(),fontChinese)); table.addCell(dataCell); dataCell.setPhrase(new Paragraph(list.get(j).getSku().getSkuValByType(2).toString(),fontChinese)); table.addCell(dataCell); dataCell.setPhrase(new Paragraph(list.get(j).getSku().getSkuValByType(1).toString(),fontChinese)); table.addCell(dataCell); int p = list.get(j).getSku().getPrice(); dataCell.setPhrase(new Paragraph(new java.text.DecimalFormat("#.00").format(p/100).toString(),fontChinese)); table.addCell(dataCell); dataCell.setPhrase(new Paragraph(""+list.get(j).getNumber(),fontChinese)); table.addCell(dataCell); long tp = list.get(j).getTotalPrice(); dataCell.setPhrase(new Paragraph(new java.text.DecimalFormat("#.00").format(tp/100).toString(),fontChinese)); table.addCell(dataCell); } } //footer float[] footwhdths = {30f}; PdfPTable foottable = new PdfPTable(footwhdths); PdfPCell footcell = new PdfPCell(new Paragraph(" yaoyingli.com | " + generateTime,subBoldFontChinese)); footcell.setHorizontalAlignment(Element.ALIGN_LEFT); footcell.setBorder(0); footcell.setPaddingLeft(-50f); foottable.addCell(footcell); //end document.add(table); document.add(foottable); document.close(); }catch(Exception e){ e.printStackTrace(); } }}Controller://一些逻辑代码...//pdf downloadString[] tableHead = {"名称","品牌","型号","数量"}; //更多参数GeneratePdfFileService.generatePdf(tableHead, list, TimeUtil.dateToString(), request, response);
0 0
- itext-asian 生成pdf 之spring boot
- PDF生成方案之iText
- java 使用itextpdf.jar和itext-asian.jar根据pdf模板填写数据后生成一个新的pdf文件
- Spring Boot 菜鸟教程 18 itext导出pdf下载
- java 用itext-asian解决itext pdf中文不显示问题
- 生成pdf,使用itext
- iText生成PDF
- itext 生成pdf
- itext 生成pdf
- 使用itext生成pdf
- iText生成PDF
- IText 生成PDF
- itext生成pdf
- iText生成PDF入门
- iText生成PDF入门
- iText生成pdf文书
- iText 生成pdf分页
- iText生成PDF学习
- 进程间通讯方式总结
- 用javascript实现网站首页轮播图效果
- 搭建ubuntu + storm集群的一些注意日志
- ECMAscript6 set
- 关于Android Studio里的Gradle,你所需要知道的都在这里了
- itext-asian 生成pdf 之spring boot
- mybatis学习笔记03--与spring集成
- stm32 各头文件或C文件功能
- Myeclipse2015问题集锦
- Spring ORM与Hibernate的集成开发详解
- HTML元素特性的操作方法
- 深入剖析tomcat读书笔记——连接器
- 字符编码ASCII, Unicode和UTF-8概念扫盲
- 前端综合