文章目录
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();
}
}
演示图