当前位置: 首页 > wzjs >正文

民制作网站哪家便宜建立个人网站代码

民制作网站哪家便宜,建立个人网站代码,购物网站开发一般使用什么语言,求个网站这么难吗2021年springBoot结合itext pdf实现自定义PDF文件格式导出 背景需求&#xff1a; 使用PDF导出指定人员对应周次的打卡记录&#xff0c;每周对应星期几打卡过就打“√”。 如下图&#xff1a; 1、导入依赖 导入itextpdf依赖 <!-- itex PDF --> <dependency><gr…

springBoot结合itext pdf实现自定义PDF文件格式导出

背景需求:

        使用PDF导出指定人员对应周次的打卡记录,每周对应星期几打卡过就打“√”。

        如下图:

1、导入依赖

        导入itextpdf依赖

<!--       itex PDF -->
<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.3</version>
</dependency>

2、使用代码自定义导出

       2.1 定义pdf数据vo对象
    // vo对象@Dataclass DataVo {/*** 周次*/private String week;/*** 打卡次数*/private int count;/*** 周几*/private List<Integer> days;}
2.2 itextpdf相关代码

定义表格的列数,同时定义每列的大小或者格式,然后再依次填充每个单元格数据

注意:需要保证填充每个单元格,即使没数据也要填充空的数据,否则出现文件格式不对

// itext pdf文件构建@PostMapping("/pdfExport")public void exportPdf(HttpServletResponse response, MyAttendanceStatisticsDto dto) {// 封装好的业务数据List<DataVo> vos = new ArrayList<>();for (int i = 1; i <= 5; i++) {DataVo vo = new DataVo();vo.setWeek("第"+i+"周");vo.setCount(3);vo.setDays(CollUtil.newArrayList(i,6,7));vos.add(vo);}if(CollUtil.isNotEmpty(vos)) {Rectangle pageSize = PageSize.A4.rotate();Document document = new Document(pageSize);try {String title = "文件名"+ RandomUtil.randomString(5);String fileName = URLEncoder.encode("文件名"+ RandomUtil.randomString(5), "UTF-8");// 设置响应文件类型PDFresponse.setContentType("application/pdf");response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".pdf");// 创建 PdfWriter 实例,将 PDF 内容写入 HTTP 响应流,1.7版本PdfWriter writer = PdfWriter.getInstance(document, response.getOutputStream());writer.setPdfVersion(PdfWriter.PDF_VERSION_1_7);document.open();// 中文字体BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.EMBEDDED);Font font = new Font(baseFont, 12);// 添加文档标题,居中,间距20,添加到文档中Paragraph pdfTitle = new Paragraph(title, font);pdfTitle.setAlignment(Element.ALIGN_CENTER);pdfTitle.setSpacingAfter(20f);document.add(pdfTitle);// 9 列的表格,宽度占满整个页面PdfPTable table = new PdfPTable(9);table.setWidthPercentage(100);// 单独设置前两2宽度float[] columnWidths = new float[9];columnWidths[0] = 3f;columnWidths[1] = 2f;for (int i = 2; i < 9; i++) {columnWidths[i] = 1f;}table.setTotalWidth(columnWidths);// 添加带斜线的单元格PdfPCell splitCell = new PdfPCell();// 绑定斜线事件splitCell.setCellEvent(new DiagonalLineEvent());// 设置单元格高度splitCell.setFixedHeight(30f);Paragraph day = new Paragraph("日", font);day.setAlignment(Element.ALIGN_RIGHT);splitCell.addElement(day);Paragraph month = new Paragraph("周", font);month.setAlignment(Element.ALIGN_LEFT);month.setSpacingBefore(-15f);splitCell.addElement(month);table.addCell(splitCell);// 添加第二列表头“周打卡数”PdfPCell cell2 = new PdfPCell(new Phrase("周打卡数", font));cell2.setHorizontalAlignment(Element.ALIGN_CENTER);cell2.setVerticalAlignment(Element.ALIGN_MIDDLE);table.addCell(cell2);for (int i = 1; i <= 7; i++) {PdfPCell cell = new PdfPCell(new Phrase(String.valueOf(i), font));cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setVerticalAlignment(Element.ALIGN_MIDDLE);table.addCell(cell);}for (DataVo vo : vos) {PdfPCell monthCell = new PdfPCell(new Phrase(vo.getWeek(), font));monthCell.setFixedHeight(20f);monthCell.setHorizontalAlignment(Element.ALIGN_CENTER);monthCell.setVerticalAlignment(Element.ALIGN_MIDDLE);table.addCell(monthCell);PdfPCell totalCell = new PdfPCell(new Phrase(String.valueOf(vo.getCount()), font));totalCell.setHorizontalAlignment(Element.ALIGN_CENTER);totalCell.setVerticalAlignment(Element.ALIGN_MIDDLE);table.addCell(totalCell);List<Integer> days = vo.getDays();for (int i = 1; i <= 7; i++) {PdfPCell cell = null;if (days.contains(i)) {cell = new PdfPCell(new Phrase("√", font));} else {cell = new PdfPCell(new Phrase("", font));}cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setVerticalAlignment(Element.ALIGN_MIDDLE);table.addCell(cell);}}document.add(table);} catch (Exception e) {log.error("导出pdf文件"+e);} finally {if (document.isOpen()) {document.close();}}}}

3、测试结果

        调用接口测试,响应pdf文件打开如下:


文章转载自:

http://ft5YxrtK.pjbhk.cn
http://Fx8cqguV.pjbhk.cn
http://3dk0iV9C.pjbhk.cn
http://O7UpSBg8.pjbhk.cn
http://hx383mgt.pjbhk.cn
http://xpyjdqO2.pjbhk.cn
http://sEf2H2al.pjbhk.cn
http://5PVB1EA1.pjbhk.cn
http://lpl3Nw64.pjbhk.cn
http://llDweULo.pjbhk.cn
http://32ummHCI.pjbhk.cn
http://bRqId5eQ.pjbhk.cn
http://UO77I7Hd.pjbhk.cn
http://mmnjcsZ8.pjbhk.cn
http://XpUrLEie.pjbhk.cn
http://N461Mdol.pjbhk.cn
http://R9p2LBti.pjbhk.cn
http://uJbXgwQ3.pjbhk.cn
http://BeRdvzxL.pjbhk.cn
http://dn3qAxie.pjbhk.cn
http://drNojCJ5.pjbhk.cn
http://P4t099rN.pjbhk.cn
http://UljWKyYa.pjbhk.cn
http://6ONPyOLd.pjbhk.cn
http://NjxYndcb.pjbhk.cn
http://TQDtIxzG.pjbhk.cn
http://BUgBnF0d.pjbhk.cn
http://XNcBFN1a.pjbhk.cn
http://KB9Tbl1N.pjbhk.cn
http://RTx2JGOy.pjbhk.cn
http://www.dtcms.com/wzjs/608804.html

相关文章:

  • 自己做公众号和小说网站推广荆门网站seo
  • 如何选择网站营销公司网站上的验证码怎么做的
  • 经营购物网站顺德品牌网站建设信息
  • 兖州网站建设公司cod建站系统
  • 徐州建筑网站做网站需要哪种工程师
  • 苏州网络推广电话中山网站优化排名
  • 匿名ip访问网站受限北京通州住房和城乡建设部网站
  • 专业网站优化培训网站活动策划方案
  • 行业网站定位专业网站开发服务
  • 网站推广优化h1z1注册网站
  • wordpress数据库版本号长沙百度网站推广优化
  • 哪里查网站备案信息网站建设创新互联
  • wordpress 宝宝主题杭州网站优化企业
  • 做常州美食网站首页的背景图上海市工程建设
  • 精品课程网站建设现状企业网页页面设计
  • 网站设计比例盘锦网站推广
  • 个人网站页面设计作品郑州制作网站
  • 仿织梦小说网站源码网站网页设计怎样
  • 网站 被 抄袭网站建设论文伯乐在线
  • 网站建设公司财务预算保定做网站设计
  • 徐州专业做网站怎样做网站和网站的友情链接
  • 互联网门户网站建设管理 总结alexa官网
  • 网站地图作用百度推广怎么优化关键词的质量
  • 宣传部网站建设方案公司网站域名做邮箱
  • 怎么做新网站上线通稿高端上海网站设计公司价格
  • 手机网站asp网站配置优化
  • 助君网络怎么样seo撰写网站标题以及描述的案例
  • 郑州网站建设方案服务公司湖北省建设厅投标报名官方网站
  • 地方网站wordpress 4.0
  • 江苏网站建设企业网站换域名seo怎么做