使用Rotativa,底层使用wkhtmltopdf 组件进行转换,使用过程中也遇到一些问题,记录下:
首先,如果页面中有资源文件,需要使用的路径问题,必须使用全路径,http://xxxxx。
其次,在导出pdf中,发现使用hightchart图表中,如果有中文,会进行unicode编码。
如下图所示:
所以必须在渲染之前对unicode码进行转换,换成中文即可
得到数据之后进行转换
1 for (var i = 0; i < series.length; i++) {2 3 series[i]["name"] = Unicode2Native(series[i]["name"]);4 5 }
转换函数:
1 function Unicode2Native(origCode) { 2 var code = origCode.match(/&#(\d+);/g); 3 if (code == null) { 4 return origCode; 5 } 6 var result = ""; 7 for (var i = 0; i < code.length; i++) { 8 result += String.fromCharCode(code[i].replace(/[&#;]/g, '')); 9 }10 11 return result;12 }