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

好网站123免费网站创建工具

好网站123,免费网站创建工具,中国建设银行官网登录首页,个人网站有哪些板块java导出pdf 在项目开发中#xff0c;产品的需求越来越奇葩啦#xff0c;开始文件下载都是下载为excel的#xff0c;做着做着需求竟然变了#xff0c;要求能导出pdf。导出pdf倒也不是特别大的问题关键就是麻烦。 导出pdf我知道的一共有3中方法#xff1a; 方法一#xff…java导出pdf 在项目开发中产品的需求越来越奇葩啦开始文件下载都是下载为excel的做着做着需求竟然变了要求能导出pdf。导出pdf倒也不是特别大的问题关键就是麻烦。 导出pdf我知道的一共有3中方法 方法一利用模板导出但是首先编辑模板的工具不好找现有的国外的工具要收费所以放弃了这个。 方法二利用HTML页面导出奈何自己不会写HTML前端忙没时间帮忙写。本着求人不如靠己的想法就选择了第三种比较麻烦的方法自己用table画。 方法三自己用纯代码画格式可调字体大小颜色对复杂没有规则的数据都可以 首先必须导入的依赖有 !--导出pdf所需包--dependencygroupIdcom.itextpdf/groupIdartifactIditextpdf/artifactIdversion5.5.10/version/dependencydependencygroupIdcom.itextpdf/groupIdartifactIditext-asian/artifactIdversion5.2.0/version/dependency然后就是一顿代码输出 先把效果贴上 然后是代码部分 ApiOperation(value 导出)PostMapping(/download)SneakyThrows(Exception.class)public void download(RequestBody Valid FumigationDTO fumigationDTO, HttpServletResponse response, HttpServletRequest request) {// 防止日志记录获取session异常request.getSession();// 设置编码格式response.setContentType(application/pdf;charsetUTF-8);response.setCharacterEncoding(utf-8);String fileName URLEncoder.encode(下载的PDF名称, UTF-8);response.setHeader(Content-disposition, attachment;filename*utf-8 fileName .pdf);fumigationService.download(fumigationDTO, response);}业务层 Overridepublic void download(FumigationDTO fumigationDTO, HttpServletResponse response) throws IOException {//要下载的数据查询数据部分我去掉了有需要自己根据业务取FumigationDowloadVO fumigationDowloadVO new FumigationDowloadVO();// 定义全局的字体静态变量Font titlefont;Font headfont;Font keyfont null;Font textfont null;Font content null;// 最大宽度try {// 不同字体这里定义为同一种字体包含不同字号、不同styleBaseFont bfChinese BaseFont.createFont(STSong-Light, UniGB-UCS2-H, BaseFont.NOT_EMBEDDED);titlefont new Font(bfChinese, 16, Font.BOLD);headfont new Font(bfChinese, 14, Font.BOLD);keyfont new Font(bfChinese, 10, Font.BOLD);textfont new Font(bfChinese, 15, Font.NORMAL);content new Font(bfChinese, 10, Font.NORMAL);} catch (Exception e) {e.printStackTrace();}BaseFont bf;Font font null;try {//创建字体bf BaseFont.createFont( STSong-Light, UniGB-UCS2-H,BaseFont.NOT_EMBEDDED);//使用字体并给出颜色font new Font(bf,20,Font.BOLD,BaseColor.BLACK);} catch (Exception e) {e.printStackTrace();}Document document new Document(new RectangleReadOnly(842F, 595F));try {PdfWriter.getInstance(document,response.getOutputStream());//打开生成的pdf文件document.open();//设置内容Paragraph paragraph new Paragraph(熏蒸备案回执,font);paragraph.setAlignment(1);//引用字体document.add(paragraph);// 设置表格的列宽和列数float[] widths {25f,25f,25f,25f,25f,25f};PdfPTable table new PdfPTable(widths);table.setSpacingBefore(20f);// 设置表格宽度为100%table.setWidthPercentage(100.0F);table.setHeaderRows(1);table.getDefaultCell().setHorizontalAlignment(1);PdfPCell cell null;//第一行cell new PdfPCell(new Paragraph(熏蒸备案编码,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setFixedHeight(30);table.addCell(cell);cell new PdfPCell(new Paragraph(fumigationDowloadVO.getXzbm()));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell new PdfPCell(new Paragraph(熏蒸备案时间,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell new PdfPCell(new Paragraph(CheckVerifyUtil.dateToString4(fumigationDowloadVO.getSqxzrq())));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell new PdfPCell(new Paragraph(申请备案单位,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell new PdfPCell(new Paragraph(fumigationDowloadVO.getDwmc(),content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);//第二行cell new PdfPCell(new Paragraph(熏蒸作业库点,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setFixedHeight(30);table.addCell(cell);cell new PdfPCell(new Paragraph(fumigationDowloadVO.getKdmc(),content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell new PdfPCell(new Paragraph(负责人,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell new PdfPCell(new Paragraph(fumigationDowloadVO.getFzr(),content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell new PdfPCell(new Paragraph(联系电话,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell new PdfPCell(new Paragraph(fumigationDowloadVO.getFzrdh(),content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);//第三行cell new PdfPCell(new Paragraph(单据状态,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setFixedHeight(30);table.addCell(cell);cell new PdfPCell(new Paragraph(shzt(fumigationDowloadVO.getShzt()),content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell new PdfPCell(new Paragraph(审核时间,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell new PdfPCell(new Paragraph(CheckVerifyUtil.dateToString5(fumigationDowloadVO.getShsj()),content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell new PdfPCell(new Paragraph( ,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);cell new PdfPCell(new Paragraph( ,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table.addCell(cell);// 设置表格的列宽和列数float[] widths2 {25f,25f,25f,25f,25f,25f};PdfPTable table2 new PdfPTable(widths2);table2.setSpacingBefore(20f);// 设置表格宽度为100%table2.setWidthPercentage(100.0F);table2.setHeaderRows(1);table2.getDefaultCell().setHorizontalAlignment(1);//人员列表-第四行cell new PdfPCell(new Paragraph(姓名,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setFixedHeight(20);table2.addCell(cell);cell new PdfPCell(new Paragraph(职务,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table2.addCell(cell);cell new PdfPCell(new Paragraph(职业资格,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table2.addCell(cell);cell new PdfPCell(new Paragraph(身体状况,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table2.addCell(cell);cell new PdfPCell(new Paragraph(熏蒸任务分工,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table2.addCell(cell);cell new PdfPCell(new Paragraph(是否外包,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table2.addCell(cell);//人员列表数据-第五行if(fumigationDowloadVO.getProples().size() 0){for (RecordFumigationPeople prople : fumigationDowloadVO.getProples()) {PdfPCell cell1 new PdfPCell(new Paragraph(prople.getXm(), content));PdfPCell cell2 new PdfPCell(new Paragraph(prople.getZw(), content));PdfPCell cell3 new PdfPCell(new Paragraph(prople.getZyzg(), content));PdfPCell cell4 new PdfPCell(new Paragraph(prople.getStzk(), content));PdfPCell cell5 new PdfPCell(new Paragraph(prople.getXzrwfg(), content));PdfPCell cell6 new PdfPCell(new Paragraph(prople.getSfwb(), content));//单元格对齐方式cell1.setHorizontalAlignment(Element.ALIGN_CENTER);cell1.setVerticalAlignment(Element.ALIGN_MIDDLE);cell1.setFixedHeight(20);//单元格垂直对齐方式cell2.setHorizontalAlignment(Element.ALIGN_CENTER);cell2.setVerticalAlignment(Element.ALIGN_MIDDLE);cell3.setHorizontalAlignment(Element.ALIGN_CENTER);cell3.setVerticalAlignment(Element.ALIGN_MIDDLE);cell4.setHorizontalAlignment(Element.ALIGN_CENTER);cell4.setVerticalAlignment(Element.ALIGN_MIDDLE);cell5.setHorizontalAlignment(Element.ALIGN_CENTER);cell5.setVerticalAlignment(Element.ALIGN_MIDDLE);cell6.setHorizontalAlignment(Element.ALIGN_CENTER);cell6.setVerticalAlignment(Element.ALIGN_MIDDLE);table2.addCell(cell1);table2.addCell(cell2);table2.addCell(cell3);table2.addCell(cell4);table2.addCell(cell5);table2.addCell(cell6);}}// 设置表格的列宽和列数float[] widths3 {25f,25f,25f,25f,25f};PdfPTable table3 new PdfPTable(widths3);table3.setSpacingBefore(20f);// 设置表格宽度为100%table3.setWidthPercentage(100.0F);table3.setHeaderRows(1);table3.getDefaultCell().setHorizontalAlignment(1);//实施储粮信息cell new PdfPCell(new Paragraph(仓房,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);cell.setFixedHeight(20);table3.addCell(cell);cell new PdfPCell(new Paragraph(货位,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table3.addCell(cell);cell new PdfPCell(new Paragraph(粮食品种,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table3.addCell(cell);cell new PdfPCell(new Paragraph(计划熏蒸开始时间,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table3.addCell(cell);cell new PdfPCell(new Paragraph(计划熏蒸结束时间,content));cell.setVerticalAlignment(Element.ALIGN_MIDDLE);cell.setHorizontalAlignment(Element.ALIGN_CENTER);table3.addCell(cell);if(fumigationDowloadVO.getDtls().size() 0){for (RecordFumigationDtlVO dtl : fumigationDowloadVO.getDtls()) {PdfPCell cell1 new PdfPCell(new Paragraph(dtl.getCfmc(), content));PdfPCell cell2 new PdfPCell(new Paragraph(dtl.getHwmc(), content));PdfPCell cell3 new PdfPCell(new Paragraph(dtl.getLspzmc(), content));PdfPCell cell4 new PdfPCell(new Paragraph(CheckVerifyUtil.dateToString4(dtl.getJhxzksrq()), content));PdfPCell cell5 new PdfPCell(new Paragraph(CheckVerifyUtil.dateToString4(dtl.getJhxzjsrq()), content));//设置居中cell1.setHorizontalAlignment(Element.ALIGN_CENTER);cell1.setVerticalAlignment(Element.ALIGN_MIDDLE);cell1.setFixedHeight(20);cell2.setHorizontalAlignment(Element.ALIGN_CENTER);cell2.setVerticalAlignment(Element.ALIGN_MIDDLE);cell3.setHorizontalAlignment(Element.ALIGN_CENTER);cell3.setVerticalAlignment(Element.ALIGN_MIDDLE);cell4.setHorizontalAlignment(Element.ALIGN_CENTER);cell4.setVerticalAlignment(Element.ALIGN_MIDDLE);cell5.setHorizontalAlignment(Element.ALIGN_CENTER);cell5.setVerticalAlignment(Element.ALIGN_MIDDLE);table3.addCell(cell1);table3.addCell(cell2);table3.addCell(cell3);table3.addCell(cell4);table3.addCell(cell5);}}document.add(new Paragraph(\n));document.add(new Paragraph(▋ 基本信息,content));document.add(new Paragraph(\n));document.add(table);document.add(new Paragraph(\n));document.add(new Paragraph(▋ 基本信息,content));document.add(new Paragraph(\n));document.add(table2);document.add(new Paragraph(\n));document.add(new Paragraph(▋ 熏蒸作业储粮粮情,content));document.add(new Paragraph(\n));document.add(table3);//关闭文档document.close();} catch (DocumentException e) {e.printStackTrace();log.error(导出pdf失败:{},e);}}然后就可以了直接导出pdf。
http://www.zqtcl.cn/news/469397/

相关文章:

  • 做区块链的网站教育培训机构平台
  • 系统网站怎么做的seo竞争对手分析
  • 菏泽网站建设菏泽众皓网页开发工资
  • 网站建设需求分析酒类群晖wordpress 映射
  • 呼和浩特网站建设宣传wordpress淘宝客插件开发
  • 如何建网站赚钱做淘宝网店需要多少钱
  • 做个企业网站 优帮云移动商城个人中心手机卡进度查询
  • 深圳建设网站哪家最好国外互联网裁员
  • 网站重新建设的请示wordpress get_terms 排序
  • 建站模板免费下载wordpress 管理地址
  • 静安企业网站制作wordpress文章列表显示缩略图
  • html前端网站开发先做网站还是先解析
  • 怎么通过域名访问网站elision wordpress
  • 做邮轮的网站做游戏的软件app
  • 做网站用php还是python家装十大品牌排行榜
  • 湛江网站建设招聘创作者服务平台
  • 衡阳建网站高中制作网站怎么做
  • 上海网站排名团队推广链接跳转
  • 寻找郑州网站优化公司上海高端网站定制
  • 网站关键词排名优化长城建设投资有限公司网站
  • 网站专题优化电子商务网站运营方案
  • 唐山建网站公司湖南网站制作电话
  • 做神马网站优化合肥城乡建设局官网
  • 网站开发与管理心得体会建设高流量网站
  • 网站安全建设的重要性减粘装置设备设计要点
  • 建设一个网站的所有代码Django和wordpress速度
  • 临沂市建设局网站公示php建站系统
  • 有哪些好的做问卷调查的网站好学的专业是编课 网站开发英语翻译
  • 个人网站免费推广广饶网站制作
  • 怎么检测网站是否安全拍卖网站开发