`

Html后台转PDF

阅读更多
工具:yahp, org.allcolor.yahp.converter.CYaHPConverter
网址:http://www.allcolor.org/YaHPConverter/
做法: 前台将html块提交到后台,后台调用相关类转成PDF
注意: 为了防止css样式丢失,html块中指定样式,但是样式从后台获取:

提交下面的div到后台
<div id="pdfDiv">
	<link rel="stylesheet" type="text/css" href="pageHtml.xxx.css"/>
		<input type="hidden" name="dispatch">
... ....
</div>


form.pageHtml.value=$("#pdfDiv").html();

后台处理

private void printPDF(Map inputParam, HttpServletRequest request) throws Exception {
		FileOutputStream out = null;
		try {
			String pdfFileNameWithPath = pdfTemplateDir + pdfFileName;
			Map properties = new HashMap();
			List headerFooterList = new ArrayList();
			String page = (String) inputParam.get("pageHtml");
			page = page.replace("(Confirmation)", "");
			String themeURL = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/theme/xxx.css";
			page = page.replace("pageHtml.xxx.css", themeURL);
			CYaHPConverter converter = new CYaHPConverter();
			out = new FileOutputStream(pdfFileNameWithPath);
			properties.put(IHtmlToPdfTransformer.PDF_RENDERER_CLASS, IHtmlToPdfTransformer.FLYINGSAUCER_PDF_RENDERER);
			converter.convertToPdf(page, IHtmlToPdfTransformer.A4P, headerFooterList, "file:///temp/", out, properties);
			out.flush();
		} catch (Exception e) {
			throw e;
		} finally {
			try {
				out.close();
			} catch (IOException e) {
				throw new Exception(e);
			}
		}
	}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics