栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

如何实现请求接口导出自定义pdf数据模板

Java 更新时间:发布时间: 百科书网 趣学号

文章目录
  • pom.xml依赖
  • 生成PDF工具类
  • 控制器层
  • 演示图

pom.xml依赖

  com.itextpdf
   itextpdf
   5.5.13



   com.itextpdf
   itext-asian
   5.2.0

生成PDF工具类
public class DataToPdfPro {

    
    public static void dataToPdf(document document) throws IOException, documentException {


        // 使用语言包字体
        baseFont abf = baseFont.createFont("STSong-Light", "UniGB-UCS2-H",baseFont.NOT_EMBEDDED);
        //字体
        Font font = new Font(abf, 9);

        //段落
        Paragraph p = new Paragraph("{课程名称}{课时计划}", new Font(abf, 12, Font.BOLD));
        p.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(p);

        //表格
        PdfPTable table = new PdfPTable(6);//numcolumns:列数
        table.setSpacingBefore(16f);//表格与上面段落的空隙

        //表格列创建并赋值
        PdfPCell cell = new PdfPCell(new Phrase("单位名称:测试有限公司", font));

        //首行
        cell = new PdfPCell(new Phrase("授课老师", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
        cell = new PdfPCell(new Phrase("", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
        cell = new PdfPCell(new Phrase("人数", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
        cell = new PdfPCell(new Phrase("", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
        cell = new PdfPCell(new Phrase("课时", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
        cell = new PdfPCell(new Phrase("", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);

//
        cell = new PdfPCell(new Phrase("年级/班级", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
        cell = new PdfPCell(new Phrase("七年级(1)班,七年级(2)班,七年级(3班),八年级(2班)", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setColspan(5);
        table.addCell(cell);


        cell = new PdfPCell(new Phrase("学习内容", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
        cell = new PdfPCell(new Phrase("", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setColspan(5);
        table.addCell(cell);

        cell = new PdfPCell(new Phrase("学习目标", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
        cell = new PdfPCell(new Phrase("", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setColspan(5);
        table.addCell(cell);

        cell = new PdfPCell(new Phrase("学习重点", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
        cell = new PdfPCell(new Phrase("", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setColspan(5);
        table.addCell(cell);

        cell = new PdfPCell(new Phrase("学习难点", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
        cell = new PdfPCell(new Phrase("", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setColspan(5);
        table.addCell(cell);
//----------------------------遍历 --------------------------------------------------------

        cell = new PdfPCell(new Phrase("教学过程1 教学时间: 2021-09-28 08:00-11:00", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setColspan(6);
        table.addCell(cell);

        cell = new PdfPCell(new Phrase("教学内容", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
        cell = new PdfPCell(new Phrase("", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setColspan(5);
        table.addCell(cell);

        cell = new PdfPCell(new Phrase("活动模板", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
        cell = new PdfPCell(new Phrase("", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setColspan(5);
        table.addCell(cell);

        cell = new PdfPCell(new Phrase("备注", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
        cell = new PdfPCell(new Phrase("", font));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setColspan(5);
        table.addCell(cell);

//---------------------------遍历--------------------------------------------------------

        table.setSpacingBefore(16f);
        document.add(table);


    }
}
控制器层
@GetMapping(value = "/pdf")
    public void pageInstitutionElective(HttpServletResponse response) throws documentException, IOException, TransformerException {

            String fileName = "pdf模板";
            response.setCharacterEncoding("UTF-8");
            response.setContentType("application/pdf");
            response.setHeader("Content-Disposition","filename=" + new String(fileName.getBytes(), "iso8859-1"));
             document doc  = new document();
            try {
                OutputStream out  = response.getOutputStream();
                PdfWriter.getInstance(doc,out);
                doc.open();
                DataToPdfPro.dataToPdf(doc);
            }catch (Exception e){
                System.out.println("111111");
            }finally {
                doc.close();
            }
    }
演示图

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/270419.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号