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

从前台获取数据,并导出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();
 }
}





猜你喜欢

转载自blog.csdn.net/weixin_42517975/article/details/80840140