package com.cbb.entity;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import org.springframework.format.annotation.DateTimeFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("card")
public class Card {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("cid")
private String cid;
@TableField("type")
private String type;
@TableField("price")
private BigDecimal price;
@TableField(exist = false)
private BigDecimal beginPrice;
@TableField(exist = false)
private BigDecimal endPrice;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@TableField("createTime")
private Date createTime;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField(exist = false)
private Date beginTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField(exist = false)
private Date endTime;
public static List
}
package com.cbb.service;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;
import com.cbb.entity.Card;
public interface CardService {
void exportPdf(HttpServletRequest request, HttpServletResponse response);
}
实现类Implepackage com.cbb.serviceimple;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cbb.entity.Card;
import com.cbb.entity.ImportCard;
import com.cbb.mapper.CardMapper;
import com.cbb.service.CardService;
import com.cbb.service.ImportCardService;
import com.cbb.util.ExcelPortUtil;
import com.cbb.util.ExportPDF;
import com.cbb.util.FileExport;
import lombok.RequiredArgsConstructor;
@Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class CardServiceImple implements CardService {
@Override
public void exportPdf(HttpServletRequest request, HttpServletResponse response) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List
// Pdf文件名
String fileName = "账单信息";
// 导出的结果集
List
if (cardList != null && cardList.size() > 0) {
for (int i = 0; i < cardList.size(); i++) {
lists.add(cardList.get(i).getCid().toString());
lists.add(cardList.get(i).getType().toString());
lists.add(cardList.get(i).getPrice().toString());
lists.add(sdf.format(cardList.get(i).getCreateTime()));
}
;
try {
exportPDF.createPDF(fileName, lists, Card.listNames, request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
util工具类package com.cbb.util;
import java.net.URLEncoder;
import java.util.List;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.Font;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
@Component
public class ExportPDF {
public void createPDF(String fileNames, List> list, List
HttpServletResponse response) throws Exception {
// 第一步,实例化一个document对象
Document document = new Document();
// 第二步,设置要到出的路径
// FileOutputStream out = new FileOutputStream("D:/workbook111.pdf");
response.setContentType("application/msexcel");
response.addHeader("Content-Disposition",
"attachment; filename=" + URLEncoder.encode(fileNames + ".pdf", "UTF-8"));
response.setCharacterEncoding("utf-8");
ServletOutputStream out = response.getOutputStream();
// 如果是浏览器通过request请求需要在浏览器中输出则使用下面方式
// OutputStream out = response.getOutputStream();
// 第三步,设置字符
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", false);
Font fontZH = new Font(bfChinese, 12.0F, 0);
// 第四步,将pdf文件输出到磁盘
@SuppressWarnings("unused")
PdfWriter writer = PdfWriter.getInstance(document, out);
// 第五步,打开生成的pdf文件
document.open();
// 第六步,设置内容
// String title = "标题";
document.add(new Paragraph(new Chunk("", fontZH).setLocalDestination("")));
document.add(new Paragraph("n"));
// 创建table,注意这里的2是两列的意思,下面通过table.addCell添加的时候必须添加整行内容的所有列
PdfPTable table = new PdfPTable(titleList.size());
table.setWidthPercentage(100.0F);
table.setHeaderRows(1);
table.getDefaultCell().setHorizontalAlignment(1);
for (int i = 0; i < titleList.size(); i++) {
table.addCell(new Paragraph(titleList.get(i).toString(), fontZH));
}
for (int i = 0; i < list.size(); i++) {
table.addCell(new Paragraph(list.get(i).toString(), fontZH));
}
document.add(table);
document.add(new Paragraph("n"));
// 第七步,关闭document
document.close();
}
}
controller层package com.cbb.controller;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.cbb.entity.Card;
import com.cbb.service.CardService;
import lombok.RequiredArgsConstructor;
@RestController
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class CardController {
private final CardService cardService;
@RequestMapping("exportCardPdf")
public void exportPdf(HttpServletRequest request, HttpServletResponse response) {
cardService.exportPdf(request, response);
}
}



