工具:yahp, org.allcolor.yahp.converter.CYaHPConverter
网址:http://www.allcolor.org/YaHPConverter/
做法: 前台将html块提交到后台,后台调用相关类转成PDF
注意: 为了防止css样式丢失,html块中指定样式,但是样式从后台获取:
提交下面的div到后台
后台处理
网址: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);
}
}
}