1)导出调用方法
@RequestMapping(value="/getZpbgPdf")
@ResponseBody
public String getZpbgPdf() throws IOException{
PageData pd = this.getPageData();
String pageurl = getPageurl(pd);
return "{\"url\":\""+pageurl+"\"}";
}
2)导出的路径
private String getPageurl(PageData pd) {
String zbgid = Validate.isNullToDefaultString(pd.get("zbgid"), "");
//取一个时间戳
String dayFold = new SimpleDateFormat("yyyyMMdd").format(new Date());
//取到存储的真实路径
String realPath=PropertiesUtil.getGlobalValueByKey("FileDataPhysicalPath");
//获取打印内容的方法
String head = PropertiesUtil.getGlobalValueByKey("zpbgHtmlPath");
String url = head+"?zbgid="+zbgid;
String fileName = UuidUtil.get32UUID();
String path=realPath+dayFold+"_"+fileName+".pdf";
String pdfurl = dayFold+"_"+fileName+".pdf";
HtmlToPdf.convert(url, path);
return pdfurl;
}
zpbgHtmlPath:导出的方法调用的路径,里面是一个路径,内容是要导出的内容jsp页面
3、导出生成的方法
public static boolean convert(String srcPath, String destPath){
File file = new File(destPath);
File parent = file.getParentFile();
//如果pdf保存路径不存在,则创建路径
if(!parent.exists()){
parent.mkdirs();
}
StringBuilder cmd = new StringBuilder();
cmd.append(toPdfTool);
cmd.append(" ");
// cmd.append(" --encoding UTF-8 ");
// cmd.append(" --disable-smart-shrinking ");
cmd.append("--page-size A4") ;
cmd.append("");//页眉下面的线
cmd.append(" ");//页眉中间内容
cmd.append(" --margin-top 37mm ");//设置页面上边距 (default 10mm)
cmd.append(" --margin-bottom 35mm ");//设置页面上边距 (default 10mm)
cmd.append(" --margin-left 28mm ");//设置页面上边距 (default 10mm)
cmd.append(" --margin-right 26mm ");//设置页面上边距 (default 10mm)
cmd.append("");// (设置页眉和内容的距离,默认0)
cmd.append(srcPath);
cmd.append(" ");
// cmd.append(" --footer-center-2 [page]/[topage]");
cmd.append(" --footer-center [page]/[topage] ");
cmd.append(destPath);
//System.err.println(cmd.toString());
boolean result = true;
try{
Process proc = Runtime.getRuntime().exec(cmd.toString());
HtmlToPdfInterceptor error = new HtmlToPdfInterceptor(proc.getErrorStream());
HtmlToPdfInterceptor output = new HtmlToPdfInterceptor(proc.getInputStream());
error.start();
output.start();
proc.waitFor();
}catch(Exception e){
result = false;
e.printStackTrace();
}
return result;
}