最近有个导出需求需要将highchart的图片和数据报表一起生成。
折腾了几天,终于搞定。
1、首先你需要安装java环境。不需要设置环境变量什么的。
2、下载相关的batik jar包,这个我下载了好多次都是错误的。附件里面有我整理好的。
3、调用官方写的php程序,我整理成一个函数了。
function svgtoimg($type, $svg, $filename){
clearfile(save_path);//删除过期文件
ini_set('magic_quotes_gpc', 'off');
$svg = (string) $svg;
$filename = (string) $filename;
// prepare variables
if (!$filename or !preg_match('/^[a-za-z0-9\-_ ]+$/', $filename)) {
$filename = 'chart';
}
if (get_magic_quotes_gpc()) {
$svg = stripslashes($svg);
}
// check for malicious attack in svg
if(strpos($svg,
;
echo error while converting svg. ;
}
else {
return $outfile;
}
} else if ($ext == 'svg') {
header(content-disposition: attachment; filename=\$filename.$ext\);
header(content-type: $type);
echo $svg;
} else {
echo invalid type;
}
}文件保存到本地,然后就可以随便搞了。
你要是实在嫌安装java环境麻烦,可以直接模拟提交请求官方的导出地址。