//导出

         public void ScoringAnnouncementdownLoad() throws MalformedURLException, IOException, DocumentException, FileStoreException {
ActionContext act = ActionContext.getContext();
AclUserBean logonUser = (AclUserBean) act.getSession().get(Constant.LOGON_USER);
String acnt=logonUser.getAcnt();
ResponseWrapper response = act.getResponse();
OutputStream os = null;
String fileName = "特约店综合评分.pdf";
fileName = new String(fileName.getBytes("GB2312"), "ISO8859-1");
Document document=new Document(PageSize.A0, 10, 10,10, 10);
    Rectangle pageRect=document.getPageSize(); 
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
    PdfWriter writer = PdfWriter.getInstance(document, baos);
         Paragraph emptyLine10 = new Paragraph(10,"");
         BaseFont bf= BaseFont.createFont("C:/WINDOWS/Fonts/SIMYOU.TTF", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
    Font fontChinese10 = new Font(bf,10, Font.NORMAL); 
      //页尾
         document.setFooter(createFooter(fontChinese10));  
            //页头
         document.setHeader(createHeader(fontChinese10)); 
            //水印
         Watermark W =new Watermark(acnt);
         writer.setPageEvent(W);
            //打开
         document.open(); 
            //添加空行
         document.add(emptyLine10);  
            //加数据
         document.add(createTab(fontChinese10));  
            //创建新页
         document.newPage();  
            //关闭
document.close();
//生成是否保存
       response.addHeader("Content-Disposition", "attachment;filename=" + fileName); 
       response.setContentType("application/pdf");
       response.setContentLength(baos.size()); 
       os = response.getOutputStream();
       baos.writeTo(os);
       //关闭流
os.flush();    
       os.close(); 
}
         private HeaderFooter createFooter(Font fontChinese10){  
        String footStr1 = "页尾 ";  
        HeaderFooter footer=new HeaderFooter(new Phrase(footStr1,fontChinese10),new Phrase(" \t\t",fontChinese10));    
        footer.setAlignment(Element.ALIGN_RIGHT);  
        footer.setBottom(0);
        return footer;  
   }  
private HeaderFooter createHeader(Font fontChinese10){  
        String footStr1 = "页头 ";  
        HeaderFooter footer=new HeaderFooter(new Phrase(footStr1,fontChinese10), false) ;  
        footer.setAlignment(Element.ALIGN_CENTER); 
        footer.setTop(0);
        footer.setLeft(0);
        return footer;  
    }  

 //数据
private PdfPTable createTab(Font fontChinese12){  
       try {
           PdfPTable tab = new PdfPTable(27);//多少列  
           //tab.setTotalWidth(100); //固定宽度  
           tab.setWidths(new int[]{20,20,40,50,50,50,50,45,45,40,40,60,90,55,75,50,40,40,78,55,50,50,60,50,50,35,50}); //每列的宽度, 只针对固     定宽度有效;如果表格使用百分比设置总宽度的话,那这里也就是使用百分比.  
           tab.setWidthPercentage(100);// 表格宽度设置为100%  
           
           List<Map<String, Object>> data = tabData();  
           PdfPCell cell_temp =  null;
           
           cell_temp = new PdfPCell(new Paragraph("排名", fontChinese12)); 
           tab.addCell(cell_temp);  
             
           cell_temp = new PdfPCell(new Paragraph("大区", fontChinese12));  
           tab.addCell(cell_temp);  
             
           cell_temp = new PdfPCell(new Paragraph("省份", fontChinese12));  
           tab.addCell(cell_temp);  
             
           cell_temp = new PdfPCell(new Paragraph("特约店简称", fontChinese12));  
           tab.addCell(cell_temp);  
             
           cell_temp = new PdfPCell(new Paragraph("特约店代码", fontChinese12));  
           tab.addCell(cell_temp); 
           cell_temp = new PdfPCell(new Paragraph("开业时间", fontChinese12));  
           tab.addCell(cell_temp); 
           cell_temp = new PdfPCell(new Paragraph("提车达成率12%", fontChinese12));  
           tab.addCell(cell_temp); 
           cell_temp = new PdfPCell(new Paragraph("登录达成率12%", fontChinese12));  
           tab.addCell(cell_temp); 
           cell_temp = new PdfPCell(new Paragraph("提车贡献率  10%", fontChinese12));  
           tab.addCell(cell_temp); 
           
           cell_temp = new PdfPCell(new Paragraph("市占率6%", fontChinese12));  
           tab.addCell(cell_temp); 
           
           cell_temp = new PdfPCell(new Paragraph("销售满意度6%", fontChinese12));  
           tab.addCell(cell_temp); 
           
           cell_temp = new PdfPCell(new Paragraph("客流目标达成率 6%", fontChinese12));  
           tab.addCell(cell_temp); 
           
           cell_temp = new PdfPCell(new Paragraph("电话网络到店目标达成率2%", fontChinese12));  
           tab.addCell(cell_temp); 
           
           cell_temp = new PdfPCell(new Paragraph("二手车目标达成率6%", fontChinese12));  
           tab.addCell(cell_temp); 
           
           cell_temp = new PdfPCell(new Paragraph("电话网络到店目标达成率2%", fontChinese12));  
           tab.addCell(cell_temp); 
           
           cell_temp = new PdfPCell(new Paragraph("售后满意度8%", fontChinese12));  
           tab.addCell(cell_temp); 
           
           cell_temp = new PdfPCell(new Paragraph("人员培训4%", fontChinese12));  
           tab.addCell(cell_temp); 
           
           cell_temp = new PdfPCell(new Paragraph("保养达成率8%", fontChinese12));  
           tab.addCell(cell_temp); 
           
           cell_temp = new PdfPCell(new Paragraph("管理内用户再次回店保养率4%", fontChinese12));  
           tab.addCell(cell_temp); 
           
           cell_temp = new PdfPCell(new Paragraph("保险产品 达成率8%", fontChinese12));  
           tab.addCell(cell_temp); 
           
           cell_temp = new PdfPCell(new Paragraph("用品单车产值4%", fontChinese12));  
           tab.addCell(cell_temp); 
           
           cell_temp = new PdfPCell(new Paragraph("保养单车达成率8%", fontChinese12));  
           tab.addCell(cell_temp); 
           
           cell_temp = new PdfPCell(new Paragraph("售后有责投诉(扣分项)", fontChinese12));  
           tab.addCell(cell_temp); 
           
           cell_temp = new PdfPCell(new Paragraph("售后得分", fontChinese12));  
           tab.addCell(cell_temp); 
           
           cell_temp = new PdfPCell(new Paragraph("总分", fontChinese12));  
           tab.addCell(cell_temp); 
           
           cell_temp = new PdfPCell(new Paragraph("是否参评", fontChinese12));  
           tab.addCell(cell_temp); 
           
           cell_temp = new PdfPCell(new Paragraph("取消参评原因", fontChinese12));  
           tab.addCell(cell_temp); 
           if(data!=null){
for (int i = 0; i < data.size(); i++) {
cell_temp = new PdfPCell(new Paragraph(data.get(i).get("RANKING")+"", fontChinese12));  
               tab.addCell(cell_temp);  
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("REGION_NAME")+"", fontChinese12));  
               tab.addCell(cell_temp);  
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("PROVINCE")+"", fontChinese12));  
               tab.addCell(cell_temp);  
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("DEALER_SHORTNAME")+"", fontChinese12));  
               tab.addCell(cell_temp);  
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("DEALER_CODE")+"", fontChinese12));  
               tab.addCell(cell_temp);
               
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("OPEN_DATE")+"", fontChinese12));  
               tab.addCell(cell_temp);
               
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V1001")+"", fontChinese12));  
               tab.addCell(cell_temp);
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V1002")+"", fontChinese12));  
               tab.addCell(cell_temp);
               
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V1003")+"", fontChinese12));  
               tab.addCell(cell_temp);
               
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V1004")+"", fontChinese12));  
               tab.addCell(cell_temp);
               
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V1005")+"", fontChinese12));  
               tab.addCell(cell_temp);
               
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V1006")+"", fontChinese12));  
               tab.addCell(cell_temp);
               
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V1007")+"", fontChinese12));  
               tab.addCell(cell_temp);
               
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V1008")+"", fontChinese12));  
               tab.addCell(cell_temp);
               
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V1999")+"", fontChinese12));  
               tab.addCell(cell_temp);
               
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V2001")+"", fontChinese12));  
               tab.addCell(cell_temp);
               
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V2002")+"", fontChinese12));  
               tab.addCell(cell_temp);
               
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V2003")+"", fontChinese12));  
               tab.addCell(cell_temp);
               
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V2004")+"", fontChinese12));  
               tab.addCell(cell_temp);
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V2005")+"", fontChinese12));  
               tab.addCell(cell_temp);
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V2006")+"", fontChinese12));  
               tab.addCell(cell_temp);
               
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V2007")+"", fontChinese12));  
               tab.addCell(cell_temp);
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V2008")+"", fontChinese12));  
               tab.addCell(cell_temp);
               
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V2999")+"", fontChinese12));  
               tab.addCell(cell_temp);
               
               cell_temp = new PdfPCell(new Paragraph(data.get(i).get("V9999")+"", fontChinese12));  
               tab.addCell(cell_temp);
if(data.get(i).get("IS_EVALUATING")=="10041002"){
cell_temp = new PdfPCell(new Paragraph("否", fontChinese12));  
               tab.addCell(cell_temp);
}else{
cell_temp = new PdfPCell(new Paragraph("是", fontChinese12));  
               tab.addCell(cell_temp);
}
cell_temp = new PdfPCell(new Paragraph(data.get(i).get("CANCEL_REASON")+"", fontChinese12));  
               tab.addCell(cell_temp);
}
           }
           return tab;  
       } catch (Exception e) {  
           e.printStackTrace();  
           return null;  
       }  
   } 
private List<Map<String, Object>> tabData(){  
 
   String DEPT_NAME=CommonUtils.checkNull(reqUtil.getString("DEPT_NAME"));//区域
String DEALER_ID=CommonUtils.checkNull(reqUtil.getString("DEALER_ID"));//店代码
String DEALER_NAME=CommonUtils.checkNull(reqUtil.getString("DEALER_NAME"));//店简称
String year = CommonUtils.checkNull(reqUtil.getString("year"));//年度
String monthBegin = CommonUtils.checkNull(reqUtil.getString("monthBegin"));//月份
Map<String, String> passMap = new HashMap<String, String>();
passMap.put("DEPT_NAME", DEPT_NAME);
passMap.put("DEALER_ID", DEALER_ID);
passMap.put("year", year);
passMap.put("DEALER_NAME", DEALER_NAME);
passMap.put("monthBegin", monthBegin);
PageResult<Map<String, Object>> ps = dao.assessmentRangeSearch(passMap, Constant.PAGE_SIZE_ALL, 1);
List<Map<String, Object>> records =  ps.getRecords();
return records;  
   }  

//水印

public class Watermark extends PdfPageEventHelper  {
Font FONT = new Font("",24, Font.BOLD, new GrayColor(0.75f));
    private String waterCont;//水印内容  
    public Watermark() {  
  
    }  
    public Watermark(String waterCont) {  
        this.waterCont = waterCont;  
    }  
  @Override
    public void onEndPage(PdfWriter writer, Document document) {  
        for(int i=0 ; i<20; i++) {  
            for(int j=0; j<28; j++) {  
                ColumnText.showTextAligned(writer.getDirectContentUnder(),  
                                           Element.ALIGN_CENTER,  
                                           new Phrase(this.waterCont == null ? "HELLO WORLD" : this.waterCont, FONT),  
                                           (50.5f+i*180),  
                                           (40.0f+j*130),  
                                           writer.getPageNumber() % 2 == 1 ? 45 : -45);  
            }  
        }  
    }  
}

java导出pdf的更多相关文章

  1. JAVA导出pdf实例

    一.直接导出成PDF   Java代码 1. import java.io.FileNotFoundException; 2. import java.io.FileOutputStream; 3.  ...

  2. java导出pdf功能记录

    这几天已在做处理导出pdf文件的功能,摸索了几天总算可以了.记录下这几天遇到的问题. 1.网上基本都是基于Itext5和Itext7来处理的.我最终是在Itext5上成功了,itext7应该是模板出问 ...

  3. Java导出Pdf格式表单

    前言   作为开发人员,工作中难免会遇到复杂表单的导出,接下来介绍一种通过Java利用模板便捷导出Pdf表单的方式 模拟需求   需求:按照下面格式导出pdf格式的学生成绩单 准备工作 Excel软件 ...

  4. Java导出pdf文件数据

    提示:导出pdf文件,需要3个jar包iText-2.1.5.jar,iTextAsian.jar,iText-rtf-2.1.4.jar. public boolean outputPdfJhsy( ...

  5. 一次java导出pdf的经历

    近期由于工作需要,需要将html代码导入到pdf中,经过了几种pdf的方案对比后发现IText是最简单和便捷的一种方式,于是乎采用了Itext. PDF生成 第一步:导入Maven依赖 <!-- ...

  6. java根据模板导出PDF详细教程

    原文:https://blog.csdn.net/pengyufight/article/details/75305128 题记:由于业务的需要,需要根据模板定制pdf文档,经测试根据模板导出word ...

  7. java根据模板导出pdf

    在网上看了一些Java生成pdf文件的,写的有点乱,有的不支持写入中文字体,有的不支持模板,有的只是随便把数据放里面生成文件,完全不考虑数据怎样放置的以及以后的维护性,想想还是自己总结一个完全版的导出 ...

  8. java利用itext导出pdf

    项目中有一功能是导出历史记录,可以导出pdf和excel,这里先说导出pdf.在网上查可以用那些方式导出pdf,用itext比较多广泛. 导出pdf可以使用两种方式,一是可以根据已有的pdf模板,进行 ...

  9. java根据模板文件导出pdf

    原文:https://www.cnblogs.com/wangpeng00700/p/8418594.html 在网上看了一些Java生成pdf文件的,写的有点乱,有的不支持写入中文字体,有的不支持模 ...

随机推荐

  1. Notepad++对比文件

    Notepad++怎么对比文件,安装文件对比插件Compare pluginhttps://blog.csdn.net/qq_31772441/article/details/80306265 可以只 ...

  2. 多重线性回归 (multiple linear regression) | 变量选择 | 最佳模型 | 基本假设的诊断方法

    P133,这是第二次作业,考察多重线性回归.这个youtube频道真是精品,用R做统计.这里是R代码的总结. 连续变量和类别型变量总要分开讨论: 多重线性回归可以写成矩阵形式的一元一次回归:相当于把多 ...

  3. 如何用python将一个时间序列转化成有监督学习

    机器学习可以被用于时间序列预测. 在机器学习能使用之前,时间序列预测需要被重新转化成有监督学习.将一个序列组合成成对的输入输出序列. 在这篇教程中,你会发现如何通过使用机器学习算法将单变量和多变量的时 ...

  4. Webpack学习-Plugin

    原文地址:http://wushaobin.top/2019/03/15/webpackPlugin/ 什么是Plugin? 在Webpack学习-工作原理(上)一文中我们就已经介绍了Plugin的基 ...

  5. 【Monkey】Monkey稳定性测试常用命令

    Monkey稳定性测试常用命令: 1.adb shell monkey n 2.adb shell monkey -p  com.android.calculator2 1000 3.adb shel ...

  6. python 模块 不可不知的知识点

    大纲可参考博客:http://www.cnblogs.com/yuanchenqi/articles/6766020.html 1.正则表达式中(re模块),. 代表除换行符以外的任意符号,但如果加上 ...

  7. 无服务器架构(Faas/Serverless)

    摘要无服务器架构(Faas/Serverless),是软件架构领域的热门话题. AWS,Google Cloud和Azure - 在无服务器上投入了大量资金,已经在看到了大量专门针对Faas/Serv ...

  8. 怎么在多场景下使用不同的 git 账号 commit

    应用场景 我有多个github的账号,不同的账号对应不同的repo,需要push的时候自动区分账号 我有多个git的账号,有的是github的,有的是单位的gitlab的,不同账号对应不同的repo, ...

  9. js实现农历时间代码

    var dNow = new Date(); var CalendarData=new Array(100); var madd=new Array(12); var tgString="甲 ...

  10. linux修改主机名+免密认证+关闭防火墙

    在很多软件安装的时候都有这些需求,因此在这里一起讲一下 修改主机名 简单的使用 hostnamectl 命令就好了 hostnamectl set-hostname NAME 免密认证 准备工作,修改 ...