import com.itextpdf.text.Document;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.tool.xml.XMLWorkerHelper;
public void exportPdf(HttpServletResponse response) throws Exception {
String rootPath = "";
String templateContent = "<html></html>"; // html内容, pdf模板
String fileName = "PDF.pdf";
List<> dataList = ;
for (Map map: dataList ) {
templateContent = setPdfData(map, templateContent);
fileName = "XXX.pdf";
}
OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
Document document = new Document(PageSize.A4);
PdfWriter pdfWriter = PdfWriter.getInstance(document,outputStream);
document.open();
XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
InputStream inputStream=null;
worker.parseXHtml(pdfWriter, document, new ByteArrayInputStream(templateContent.getBytes("UTF-8")),inputStream, Charset.forName("UTF-8"),new AsianFontProvider());
document.close();
outputStream.flush();
outputStream.close();
}
多文件生成pdf,打包:
public void exportAllPdf(HttpServletResponse response) throws Exception {
String rootPath = "";
String templateContent = "<html></html>"; // html内容, pdf模板
String file_path = "admin/qlc/pdf/";
String outputFile = rootPath + file_path;
DelAllFile.delFolder(outputFile); // 生成代码前,先清空之前生成的代码
List<> dataList = ;
for (Map map: dataList ) {
String pdfContent = setPdfData(map, templateContent);
String fileName = "XXX.pdf";
File file = new File(outputFile + fileName);
if (!file.getParentFile().exists()) { // 如果文件的目录不存在
file.getParentFile().mkdirs(); // 创建目录
}
Document document = new Document(PageSize.A4);
PdfWriter pdfWriter = PdfWriter.getInstance(document,new FileOutputStream(file));
document.open();
XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
InputStream inputStream=null;
worker.parseXHtml(pdfWriter, document, new ByteArrayInputStream(pdfContent.getBytes("UTF-8")),inputStream, Charset.forName("UTF-8"),new AsianFontProvider());
document.close();
}
if (FileZip.zip(outputFile, rootPath + "admin/qlc/pdf.zip")) {
/* 下载代码 */
FileDownload.fileDownload(response, rootPath + "admin/qlc/pdf.zip", "pdf.zip");
}
}
jsp页面:
window.location.href = '/exportPdf.do?id='+Id;