java 导出PDF,html模板

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;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值