循环卡死当然是有原因的,首先jspdf对canvas也是有最大长度限制的,太长了就转不了。
最后还是用wkhtmltopdf这个组件,先将页面上的canvas都转成图片,然后再循环将html字符串传到后台使用wkhtmltopdf这个组件生成pdf,合成即可。合成的话我用的itext吧,当然可能有更好的,自己网上搜搜。代码就不贴了,也是抄别人的,不过有一点就是有可能会遇到传到后台的html字符串发生了转义,这时候就需要再转回去:
public static String enodeHtml(String html){
html = html.replace("/&","&");
html = html.replace("<","<");
html = html.replace(">",">");
html = html.replace(" "," ");
html = html.replace("'","\'");
html = html.replace(""","\"");
System.out.println