81,122
社区成员




public static void createPDF(OutputStream os,String fileName, Talents talents){
//生成pdf文件
Document document = new Document(PageSize.A4,36,36,126,36);
PdfWriter writer = null;
try {
BaseFont bfChinese=BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
//设置字体样式
Font textFont = new Font(bfChinese,12,Font.NORMAL);//正常
Font boldFont = new Font(bfChinese,11,Font.BOLD); //加粗
Font firsetTitleFont = new Font(bfChinese,22,Font.BOLD); //一级标题
Font secondTitleFont = new Font(bfChinese,15,Font.BOLD); //二级标题
Font underlineFont = new Font(bfChinese,11,Font.UNDERLINE); //下划线斜体
PdfWriter.getInstance(document, new FileOutputStream(fileName));
document.open();
// 标题
Paragraph title = new Paragraph("生产技能人才个人积分详细信息:" + talents.getName(), firsetTitleFont);
title.setAlignment(Element.ALIGN_CENTER);
title.setSpacingAfter(20f);
document.add(title);
//创建table对象
PdfPTable table = new PdfPTable(7);
table.setSpacingBefore(10);
table.setHorizontalAlignment(Element.ALIGN_CENTER);
table.setTotalWidth(new float[]{ 30,80, 80, 80, 80, 80 ,100 }); //设置列宽
table.setLockedWidth(true); //锁定列宽
PdfPCell cell = new PdfPCell();
//添加表格内容
//第一行
table.addCell(PDFUtil.getPDFCell("姓名", textFont));
table.addCell(PDFUtil.mergeCol(talents.getName(), textFont, 2));
table.addCell(PDFUtil.getPDFCell("工号", textFont));
table.addCell(PDFUtil.getPDFCell(talents.getR1(), textFont));
table.addCell(PDFUtil.getPDFCell("性别", textFont));
table.addCell(PDFUtil.getPDFCell(talents.getSex(), textFont));
//第二行
table.addCell(PDFUtil.getPDFCell("出生日期", textFont));
table.addCell(PDFUtil.mergeCol(talents.getBirthDate().toString(), textFont, 2));
table.addCell(PDFUtil.getPDFCell("政治面貌", textFont));
table.addCell(PDFUtil.getPDFCell(talents.getPolitical(), textFont));
table.addCell(PDFUtil.getPDFCell("工作单位", textFont));
table.addCell(PDFUtil.getPDFCell(talents.getWorkName(), textFont));
//第三行
table.addCell(PDFUtil.getPDFCell("学历", textFont));
table.addCell(PDFUtil.mergeCol(talents.getEducation(), textFont, 2));
table.addCell(PDFUtil.getPDFCell("专业技术资格", textFont));
table.addCell(PDFUtil.getPDFCell(talents.getTechnical(), textFont));
table.addCell(PDFUtil.getPDFCell("职业技能等级", textFont));
table.addCell(PDFUtil.getPDFCell(talents.getLevel(), textFont));
//第四行
table.addCell(PDFUtil.getPDFCell("岗位职务", textFont));
table.addCell(PDFUtil.mergeCol(talents.getDuties(), textFont, 2));
table.addCell(PDFUtil.getPDFCell("参加工作时间", textFont));
table.addCell(PDFUtil.getPDFCell(talents.getWorkingDate().toString(), textFont));
table.addCell(PDFUtil.getPDFCell("工龄", textFont));
table.addCell(PDFUtil.getPDFCell(talents.getYears(), textFont));
//基础积分表
for(TalentsBasis talentsBasis : talents.getTalentsBasisList()){
table.addCell(PDFUtil.mergeRow("基础积分表", textFont, talents.getTalentsBasisList().size()));
table.addCell(PDFUtil.getPDFCell("学历积分", textFont));
table.addCell(PDFUtil.getPDFCell("专业技术资格积分", textFont));
table.addCell(PDFUtil.getPDFCell("职业技能等级积分", textFont));
table.addCell(PDFUtil.getPDFCell("岗位职务积分", textFont));
table.addCell(PDFUtil.getPDFCell("企业年限积分", textFont));
table.addCell(PDFUtil.getPDFCell("基础积分", textFont));
table.addCell(PDFUtil.getPDFCell(talentsBasis.getEducationScore(), textFont));
table.addCell(PDFUtil.getPDFCell(talentsBasis.getTechnicalScore(), textFont));
table.addCell(PDFUtil.getPDFCell(talentsBasis.getLevelScore(), textFont));
table.addCell(PDFUtil.getPDFCell(talentsBasis.getDutiesScore(), textFont));
table.addCell(PDFUtil.getPDFCell(talentsBasis.getSeniorityScore(), textFont));
table.addCell(PDFUtil.getPDFCell(talentsBasis.getBasisScore(), textFont));
}
//技能积分表
for (TatlentsSkill tatlentsSkill : talents.getTatlentsSkillList()){
table.addCell(PDFUtil.mergeRow("技能积分表", textFont, talents.getTatlentsSkillList().size()));
table.addCell(PDFUtil.getPDFCell("序号", textFont));
table.addCell(PDFUtil.mergeCol("积分事件", textFont, 3));
table.addCell(PDFUtil.getPDFCell("获得积分", textFont));
table.addCell(PDFUtil.getPDFCell("附件", textFont));
for(int i=0;i<talents.getTatlentsSkillList().size();i++){
table.addCell(PDFUtil.getPDFCell(i+" ", textFont));
}
table.addCell(PDFUtil.mergeCol(tatlentsSkill.getAddEvent(), textFont, 3));
table.addCell(PDFUtil.getPDFCell(tatlentsSkill.getGetScore(), textFont));
table.addCell(PDFUtil.getPDFCell(Global.getAdminPath()+tatlentsSkill.getR3(), textFont));
}
//扣减积分表
for(TatlentsMinus tatlentsMinus : talents.getTatlentsMinusList()){
table.addCell(PDFUtil.mergeRow("扣减积分表", textFont, talents.getTatlentsMinusList().size()));
table.addCell(PDFUtil.getPDFCell("序号", textFont));
table.addCell(PDFUtil.mergeCol("扣减积分事件", textFont, 3));
table.addCell(PDFUtil.getPDFCell("扣减积分", textFont));
table.addCell(PDFUtil.getPDFCell("附件", textFont));
for(int i=0;i<talents.getTatlentsMinusList().size();i++){
table.addCell(PDFUtil.getPDFCell(i+" ", textFont));
}
table.addCell(PDFUtil.mergeCol(tatlentsMinus.getMinusEvent(), textFont, 3));
table.addCell(PDFUtil.getPDFCell(tatlentsMinus.getLoseScore(), textFont));
table.addCell(PDFUtil.getPDFCell(Global.getAdminPath()+tatlentsMinus.getR3(), textFont));
}
table.addCell(PDFUtil.getPDFCell("最终积分", textFont));
table.addCell(PDFUtil.mergeCol(talents.getScore(), boldFont, 6));
cell = PDFUtil.mergeCol("备注信息:" + talents.getRemarks(),textFont,7);
cell.setFixedHeight(280);
cell.setVerticalAlignment(Element.ALIGN_TOP);
cell.setHorizontalAlignment(Element.ALIGN_LEFT);
cell.setPaddingTop(10);
cell.setPaddingLeft(10);
table.addCell(cell);
document.add(table);
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
System.out.println("PDF创建失败");
}finally {
// 关闭文档
document.close();
if (null != writer) {
writer.close();
}
}
System.out.println("PDF创建成功:"+fileName);
}
public String exportFile (@PathVariable("talentsId") String talentsId, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes){
Talents talents = talentsService.get(talentsId);
try {
OutputStream os = response.getOutputStream();
response.setCharacterEncoding("utf-8");
response.setHeader("content-type", "application/octet-stream");
String date = DateUtils.formatDate(new Date(), "yyyyMMdd");
String fileName = URLEncoder.encode(talents.getName()+"个人积分详细信息" + date + ".pdf","UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
GeneratePDF.createPDF(os, fileName,talents);
os.flush();
os.close();
} catch (IOException e) {
addMessage(redirectAttributes, "导出个人积分详细信息失败!失败信息:"+e.getMessage());
}
return "redirect:"+Global.getAdminPath()+"/talents/talents/?repage";
}