• java生成pdf表格并支持下载可选另存为


    1. package com.qf.staff_manage.controller;
    2. import com.itextpdf.kernel.color.Color;
    3. import com.itextpdf.kernel.font.PdfFont;
    4. import com.itextpdf.kernel.font.PdfFontFactory;
    5. import com.itextpdf.kernel.geom.PageSize;
    6. import com.itextpdf.kernel.pdf.PdfDocument;
    7. import com.itextpdf.kernel.pdf.PdfWriter;
    8. import com.itextpdf.layout.Document;
    9. import com.itextpdf.layout.element.Cell;
    10. import com.itextpdf.layout.element.Paragraph;
    11. import com.itextpdf.layout.element.Table;
    12. import com.itextpdf.layout.property.TextAlignment;
    13. import org.springframework.web.bind.annotation.RequestMapping;
    14. import org.springframework.web.bind.annotation.RestController;
    15. import javax.servlet.http.HttpServletResponse;
    16. import java.io.ByteArrayOutputStream;
    17. import java.io.FileNotFoundException;
    18. import java.io.IOException;
    19. import java.util.List;
    20. @RestController
    21. @RequestMapping("candidate")
    22. public class dd {
    23. @RequestMapping("/dd")
    24. public void createpdf(HttpServletResponse response) throws IOException {
    25. try {
    26. response.reset();
    27. String fileName = new String(("信用承诺失信行为查询.pdf").getBytes("gb2312"), "ISO8859-1");
    28. response.setContentType("application/pdf");
    29. response.setHeader("Content-disposition", "attachment; filename=" + fileName);
    30. ByteArrayOutputStream baos = new ByteArrayOutputStream();
    31. PdfWriter writer = new PdfWriter(baos);
    32. PdfDocument pdf = new PdfDocument(writer);
    33. Document document = new Document(pdf, PageSize.A4);
    34. // 创建字体
    35. PdfFont font = PdfFontFactory.createFont("STSong-Light", "UniGB-UCS2-H", true); // 设置加粗和字体大小
    36. PdfFont font1 = PdfFontFactory.createFont("STSong-Light", "UniGB-UCS2-H", true);
    37. // 创建表格
    38. Table table = new Table(5); // 3列的表格
    39. //添加标题
    40. table.addHeaderCell(new Cell(1, 5).add(new Paragraph("信用承诺失信行为查询").setFont(font).setTextAlignment(TextAlignment.CENTER)).setBold().setFontSize(18));
    41. // 添加表头
    42. table.addCell(new Cell().add(new Paragraph("序号").setFont(font).setTextAlignment(TextAlignment.CENTER)).setBold());
    43. table.addCell(new Cell().add(new Paragraph("单位名称").setFont(font).setTextAlignment(TextAlignment.CENTER)).setBold());
    44. table.addCell(new Cell().add(new Paragraph("是/否信用承诺失信行为").setFont(font).setTextAlignment(TextAlignment.CENTER)).setBold());
    45. table.addCell(new Cell().add(new Paragraph("查询人").setFont(font).setTextAlignment(TextAlignment.CENTER)).setBold());
    46. table.addCell(new Cell().add(new Paragraph("查询时间").setFont(font).setTextAlignment(TextAlignment.CENTER)).setBold());
    47. //查询出表格数据
    48. // 在文档中添加表格
    49. document.add(table);
    50. // 关闭文档
    51. document.close();
    52. byte[] pdfBytes = baos.toByteArray();
    53. // 将PDF内容写入响应输出流
    54. response.setContentLength(pdfBytes.length);
    55. response.getOutputStream().write(pdfBytes);
    56. response.getOutputStream().flush();
    57. response.getOutputStream().close();
    58. writer.close();
    59. } catch (FileNotFoundException e) {
    60. e.printStackTrace();
    61. } catch (IOException e) {
    62. throw new RuntimeException(e);
    63. }
    64. }
    65. }

    直接复制以上代码即可完成,但是也要引入一些依赖

    1. com.itextpdf
    2. kernel
    3. 7.0.3
    4. com.itextpdf
    5. io
    6. 7.0.3
    7. com.itextpdf
    8. layout
    9. 7.0.3
    10. com.itextpdf
    11. font-asian
    12. 7.0.3

    引入以后修修补补增增改改就可以了

  • 相关阅读:
    java-net-php-python-s2sh教学管理平台hsg8229AGA2修改回复计算机毕业设计程序
    一张VR图像帧的生命周期
    【Redis】10道不得不会的Redis面试题
    A. Image
    idea开发jface、swt环境搭建
    Redis入门基础命令
    向量检索(二)Faiss 不同索引的性能
    互联网上有哪些适合上班族的副业?
    springboot充电桩综合管理系统
    广义表的存储结构及其基本运算
  • 原文地址:https://blog.csdn.net/weixin_62907807/article/details/132617446