从前台获取数据,并导出PDF文件


Jsp页面:

<div style="width:30%;height:100%;float:left;" id="gzbddiv">
&nbsp;请选择变动原因:&nbsp;<input id="bdyy" name="bdyy" type="text" class="easyui-combobox combo"/>&nbsp;&nbsp;&nbsp;
<a href="javascript:;" id="save" class="easyui-linkbutton" data-options="iconCls:'icon-save',size:'normal'" plain="true"><span class="button-text">保存</span></a>
</div>
<div id="dcpdf" style="float:left;">
<a href="javascript:;" id="exportPdfBd" class="easyui-linkbutton" data-options="iconCls:'icon-export-excel',size:'normal'" plain="true"><span class="button-text">pdf数据导出</span></a>
</div>

js代码

//工资变动 导出pdf
$("#exportPdfBd").click(function(){
if(num == 3){
//房帖变动导出pdf
var rows = $("#bd").datagrid('getData').rows;
for(var i = 0;i < rows.length;i++){
var row = $("#bd").datagrid('getData').rows[i];
fttzlist.push({"COLLEGE_ID":row.COLLEGE_ID,"STAFF_ID":row.STAFF_ID,
"NAME":row.NAME,"XNFTSJ":row.XNFTSJ,"JFT":row.JFT,"XFT":row.XFT,
"BFFT":row.BFFT,"BFYS":row.BFYS,"BZ":row.BZ});
}
var fttzstr = JSON.stringify(fttzlist);
$.ajax({
"url":"<%=basePath%>/ftbdPdf.action",
"type":"post",
datatype:"json",
data:{
'fttzstr':fttzstr
},
success:function(filedownloadpath){
StandardPost('<%=basePath%>/fileDownload',{'path':filedownloadpath});
top.$.messager.alert("系统提示","导出成功!","info");
fttzlist.length= 0;
}
});
}
});

Struts.Xml

<!-- 房帖变动信息  导出pdf  -->
<action name="ftbdPdf" class="salaryManagementAction" method="ftbdPdf">
   <result type="json">
 <param name="root">filedownloadpath</param>
   </result>
</action>

Action代码

//房帖调整
private String fttzstr;//get-set方法
/**
 * 房帖调整  生成PDF
 */ 
  public String ftbdPdf(){
  Date now = new Date();
 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
 String nowtime = sdf.format(now);
 List<GZ_FTTZ_2017> fttzlist = new ArrayList<GZ_FTTZ_2017>();//房帖变动信息
 try {
 fttzlist = JSONArray.parseArray(fttzstr,GZ_FTTZ_2017.class);
 //fttzlist = salaryManagementService.searchFTTZ();//查找房帖变动信息
    Object[][] data2 = new Object[fttzlist.size()][];
           for (int i = 0; i < fttzlist.size(); i++) {
   Object[] obj2 = new Object[8];//给pdf的
   obj2[0] = fttzlist.get(i).getSTAFF_ID();
   obj2[1] = fttzlist.get(i).getNAME();
   obj2[2] = fttzlist.get(i).getCOLLEGE_ID();
   obj2[3] = fttzlist.get(i).getXNFTSJ();
   obj2[4] = fttzlist.get(i).getJFT();
   obj2[5] = fttzlist.get(i).getXFT();
   obj2[6] = fttzlist.get(i).getBFFT();
   obj2[7] = fttzlist.get(i).getBZ();
   data2[i] = obj2;
  }
  String path = "D:/房帖变动/房帖变动生成PDF/";
  File file = new File(path);
     if (!file.exists()) {
   file.mkdirs();
   }
  String filename = "高贴"+nowtime+".pdf";
  path = path+filename;
  fttzPdfFile(data2,path);
  filedownloadpath = path;
  return "success";
  } catch (Exception e) {
   e.printStackTrace();
          return "error";
  }
 }
/**
 * 房帖调整 ,生成pdf文件
 */
public static void fttzPdfFile(Object[][] data,String path){
 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
 Date date = new Date();
 String nowtime = sdf.format(date);
 String year = nowtime.substring(0,4);
 String month = nowtime.substring(4,6);
 try {
  //创建文件
   Document document=new Document(new RectangleReadOnly(842F,595F));
   //建立一个书写器
   PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(path));
   BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", false); 
   Font fontChinese = new Font(bfChinese,10, Font.NORMAL);  
   //打开文件
   document.open();
   //添加内容
   Paragraph par = new Paragraph("住房补贴调整通知单--"+year+"年"+month+"月",fontChinese);
   par.setAlignment(Element.ALIGN_CENTER);
   document.add(par);
   // 8列的表.
   PdfPTable table = new PdfPTable(10);
   float[] columnWidths = { 1f, 1f, 1f , 1f, 1f , 1f , 1f , 1f ,1f ,1f};
   table.setWidths(columnWidths);
   //table.setTotalWidth(500f);//设置表格的总宽度
         
   table.setWidthPercentage(105); // 宽度100%填充
   table.setSpacingBefore(1f); // 前间距
   table.setSpacingAfter(1f); // 后间距
   List<PdfPRow> listRow = table.getRows();
         
   //行1
   PdfPCell cells1[]= new PdfPCell[10];
   PdfPRow row1 = new PdfPRow(cells1);
   //单元格
   cells1[0] = new PdfPCell(new Paragraph("人员编号",fontChinese));//单元格内容
   /*cells1[0].setPaddingLeft(20);//左填充20
    cells1[0].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
    cells1[0].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
*/         
    cells1[1] = new PdfPCell(new Paragraph("姓名",fontChinese));
    cells1[2] = new PdfPCell(new Paragraph("单位",fontChinese));
    cells1[3] = new PdfPCell(new Paragraph("校内房帖时间",fontChinese));
    cells1[4] = new PdfPCell(new Paragraph("原房帖",fontChinese));
    cells1[5] = new PdfPCell(new Paragraph("现房贴",fontChinese));
    cells1[6] = new PdfPCell(new Paragraph("补发",fontChinese));
    cells1[7] = new PdfPCell(new Paragraph("备注",fontChinese));
    cells1[8] = new PdfPCell(new Paragraph("",fontChinese));
    cells1[9] = new PdfPCell(new Paragraph("",fontChinese));
    cells1[7].setColspan(3); //合并列
    for (int j = 0; j < 10; j++) {
        cells1[j].setMinimumHeight(20);//设置表格行高
        cells1[j].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
        cells1[j].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
   }
        //把第一行添加到集合
        listRow.add(row1);
         
    for(int i =0;i<data.length;i++){
    PdfPCell cells[]= new PdfPCell[10];
    PdfPRow row = new PdfPRow(cells);
    for(int j = 0;j<8;j++){
        cells[j] = new PdfPCell(new Paragraph(String.valueOf(data[i][j]),fontChinese));//单元格内容
        cells[j].setMinimumHeight(20);//设置表格行高
        cells[j].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中
        cells[j].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中
        if (j==7) {
           cells[7].setColspan(3); //合并列
    }
      }
        listRow.add(row);
      }
   //把表格添加到文件中
  document.add(table);
   //关闭文档
  document.close();
   //关闭书写器
  writer.close();
 } catch (Exception e) {
  e.printStackTrace();
 }
}


从前台获取数据,并导出PDF文件相关推荐

  1. 利用easypoi execl数据模板导出pdf文件

    1:首先整理出excel模板文件,格式如下 2:pom.xml文件中导入 <!--使用最新的版本即可 --><dependency><groupId>cn.afte ...

  2. Excel VBA自动化办公:选择Excel文件合并订单数据生成订单汇总表、生成发货单并导出pdf文件、自动统计业绩生成业绩表

    基本需求: 让用户可以选择多个文件,根据用户选中的工作簿进行合并订单数据,按照预先设计好的订单模板写入数据. 对于同一个交易序号下面有多个订单的,需要计算该交易序号下所有订单的总金额.总票数.相同交易 ...

  3. 我精心整理的 136 页 Excel 数据透视表 PDF 文件!【附获取方式】

    大家好,我是 JackTian. 我的一位好朋友,也是我的一位忠实读者了,从我2018年刚开始做公众号那时,就一直关注到我到现在.累积赠送他书籍共有小 10 余本,我的这位好朋友呢,也非常的良心. 他 ...

  4. asp.net2.0导出pdf文件完美解决方案【月儿原创】

    asp.net2.0导出pdf文件完美解决方案 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.5.28 PDF简介:PDF(P ...

  5. Java使用Freemarker通过模板文件导出PDF文件、横向显示

    前言: 尝试了不少通过模板文件导出pdf文件的方法,要么实现起来复杂,要么实现效果不理想,经过反复查找资料和尝试发现此方法是最理想的. 本博客又经大量网友实践及建议,经过几次完善修改,又日趋完善,在此 ...

  6. Itext导出pdf文件

    使用iText生成pdf文件并导出 前言: 项目中需要给用户提供一个可以导出pdf文件的功能,用来展示本月的数据.像excel.word这种直接就可以使用POI进行导出了,但是导出pdf格式的文件 我 ...

  7. java itext 导出pdf文件_【Java,PDF】使用Itext实现PDF文件生成

    重要声明:本文章仅仅代表了作者个人对此观点的理解和表述.读者请查阅时持自己的意见进行讨论. 前言 有时候,业务系统要求提供一个PDF文件导出的功能,这时候我们就需要将数据库的对应数据查询出来,然后生成 ...

  8. c 将html导出pdf文件,将HTML页面转换为PDF文件并导出

    目碎前整要们开自近事端个广的的带近事端个广前,在大多数的管理系统中,都会有这样一个功能:根据相关的条件查询相应的数据,并生成可视化报表,然后可导出为PDF文件.本文只展现生成可视化报表之后导出PDF文 ...

  9. java 使用itext导出PDF文件,中文不显示问题解决

    之前写的java 使用itext 导出pdf 发现有个问题,在今天使用的时候,发现一个问题,就是当单元格中写中文的时候,导出来的pdf中文不显示. java 使用itext导出PDF文件,图片文字左右 ...

最新文章

  1. 如何将c语言改写成汇编语言,如何把汇编语言转换成C语言
  2. JAVA IDEA集成geotools gt-mif gdal读取.MIF
  3. threading多线程模块
  4. include element into ABAP word document
  5. MapReduce学习笔记(4)
  6. html5画安卓机器人,HTML5用户笔画形状检测机器人
  7. 学python能做什么-非计算机专业的人学python能做什么?
  8. pytorch之各类图像库的图片读写方式
  9. 破坏入侵计算机信息系统犯罪,刑事律师解读:新形势下的黑科技犯罪—破坏计算机信息系统罪...
  10. linux vnc服务器6,Linux(RHEL6\CENTOS6\OLE6) 下VNC-SERVER安装与配置
  11. Ember -Routes
  12. 如何选择合适的离心机,有哪些重要参数——TFN FUP LB6CM 落地式低速大容量冷冻离心机
  13. 使用FFMPEG将非YUV420p压缩成JPG
  14. 建筑智能化综合监控系统数据点解剖
  15. 鸿蒙无极造化玉牒,上古十大至强神器,东皇钟只能排第四,另外七件你知道是哪七件吗...
  16. 进化算法——反向学习
  17. 未来教育二级mysql怎么做题_计算机二级买了未来教育,但是不知道该怎么学习,就是单纯的刷题吗?感觉没有书有点不习惯,怎么办?...
  18. Java中使用JCOM操作Word/Excel对象
  19. RBP系统管理之地区管理
  20. 9、★♥★基于STM32单片机的颜色检测仪设计♥☆

热门文章

  1. php 如何将富文本内容输出到word里面且添加页眉和页脚
  2. 15.4 MPLS 控制层面 PE和CE设备间的路由更新
  3. 获取当前月份的最后一天
  4. jquery+css实现流星雨特效
  5. 如果万物数连,那么建筑应当如何与大数据结合?
  6. 苹果退款_苹果 App Store 里自动订阅续费的应用可以退款吗?
  7. emby,jellyfin,kodi系列
  8. mysql桌面型数据库下载_桌面数据库下载v2019.12.001 安装版-西西软件下载
  9. 组件‘mscomctl.ocx‘或它的一个依赖项没有正确注册:一个文件丢失或无效
  10. 小米 android 8.1手机,小米又一款手机获得安卓8.1系统更新!