用到的包引入
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7</version>
</dependency>
调用:
ExportPdf.exportGrPdf(grInfo, list, imgByteList, isPurchaseOrder, os);
实现代码:
package com.sgm.msm.util;
import com.hgcc.hdf.wf.exception.BadArgumentException;
import com.hgcc.htools.time.DateUtil;
import com.lowagie.text.Font;
import com.lowagie.text.Image;
import com.lowagie.text.Rectangle;
import com.lowagie.text.*;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;
import com.sgm.msm.constants.MsmConstants;
import com.sgm.msm.domain.gr.TmGrInfo;
import com.sgm.msm.domain.sp.SpInfo;
import com.sgm.msm.service.FileService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.awt.*;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Component
public class ExportPdf {
private static final String fileName = "排期收料明细清单.pdf";
private static FileService fileService;
public ExportPdf(FileService fileService) {
this.fileService = fileService;
}
public static void exportGrPdf(TmGrInfo grInfo, List<SpInfo> list, List<byte[]> imgByteList,
boolean isPurchaseOrder, OutputStream os) {
Rectangle rectangle = new Rectangle(842, 595);
Document doc = new Document(rectangle);
doc.setMargins(20, 20, 20, 20);
String path = "templates/exportPdf";
PdfWriter writer;
File file = new File(path);
if (!file.exists()) {
boolean mkdirs = file.mkdirs();
if(!mkdirs) {
log.info("文件夹创建失败!");
throw new BadArgumentException("文件夹创建失败!");
}
}
try(FileOutputStream fos = new FileOutputStream(path + "/" + fileName)) {
writer = PdfWriter.getInstance(doc, fos);
doc.open();
pafTable(grInfo, doc, list, imgByteList, isPurchaseOrder);
doc.close();
writer.flush();
writer.close();
} catch (IOException | DocumentException e) {
log.info("文件生成错误!");
throw new BadArgumentException("文件生成错误!");
}
try(InputStream ins = new BufferedInputStream(new FileInputStream(path + "/" + fileName))) {
FileUtil.inToOut(ins, os);
} catch (IOException e) {
log.info("导出错误!");
throw new BadArgumentException("导出错误!");
}
}
public static String exportGrPdf(TmGrInfo grInfo, List<SpInfo> list,
List<byte[]> imgByteList, boolean isPurchaseOrder) {
Rectangle rectangle = new Rectangle(842, 595);
Document doc = new Document(rectangle);
doc.setMargins(20, 20, 20, 20);
String path = "templates/exportPdf";
PdfWriter writer;
File file = new File(path);
if (!file.exists()) {
</