php导出pdf(二)

在导出pdf时遇到了一个问题,就是在页面上用Highcharts画出的图如何导出到pdf上(不用Highcharts原生的导出pdf操作)

经过不断的努力终于成功了

1.先在页面上画出highcharts图

function drawlHighCharts(fdate,sdate,ydata,bdata,len){
	Highcharts.setOptions({ 
	    colors: ['#45A43E', '#BF0A0A'] 
	}); 
	var chart = new Highcharts.Chart({
		chart: { 
			renderTo: "jianbao",
            type: 'spline',
            marginBottom:30
		},
		title: {
            text: ''
        },
		xAxis: {
			categories: eval(fdate),
//			tickInterval:6,
			labels: {
            	step:len,
            	rotation: -10,
                align: 'right',
                style: {
                    fontSize: '8px',
                    fontFamily: 'Verdana, sans-serif'
                }
             }  
		},
		yAxis: {
			min:0,
			gridLineColor: "#f5f5f5"
		},
		tooltip: {
			crosshairs: true,
			shared: true
		},
		plotOptions: {
			spline: {
				lineWidth: 1,
				states: {
					hover: {
						lineWidth: 1
					}
				},
				marker: {
					enabled: false
				}
				
			}
		},
		
        legend : {
			layout : 'vertical',
			align : 'right',
			verticalAlign : 'top',
			x : 10,
			y : 30,
			borderWidth : 1,
			enabled : false
		},
		series: [{
			name: '预警',
			data: eval(ydata)

		}, {
			name: '报警',
			data: eval(bdata)
		}]
	});
}

2.Highcharts在页面上是一个svg格式的xml,通过js取得svg内容,并使用Highcharts服务器生成图片

function getHighCharts(pdf,type){
	var svg = $("#jianbao > div").html(); //document.getElementById("highcharts-4").innerHTML;
	$.ajax({
		url:'index.php?m=ExportPdf&a=getImage',
		type:'POST',
		data:{svg:svg,name:pdf},
		dataType:'text',
		success:function(data){
			if(data == '1'){
				//导出图片到PDF
				exportImage(type,pdf);
			}
		}
	});
}

function exportImage(val,pdfname){
	$.ajax({
		url:'xxx.php?type='+val+'&pdfname='+pdfname,
		type:'GET',
		dataType:'text',
		success:function(data){
			if(data == '0'){
				alert("成功!");
			}
		}
	});
}

3.php实现向Highcharts提交svg数据并生成图片

public function getImage(){
 		$path = 'd:/data';
                 if(!is_dir($path)) {
			mkdir($path);
		}
		$name = $_POST['name'];
		$svg = $_POST['svg'];
		$type = "image/jpeg";
		$url = "http://export.highcharts.com/";
		
		$postdata = http_build_query(
			array(
				'svg' => $svg,
				'type' => $type
			)
		);
		
		$opts = array('http' =>
			array(
				'method'  => 'POST',
				'header'  => 'Content-type: application/x-www-form-urlencoded',
				'content' => $postdata
			)
		);
		
		$context  = stream_context_create($opts);
		
		$result = file_get_contents($url, false, $context);
		file_put_contents($path.'/'.$name.'.jpg', $result);
		echo '1';
	
	}

4.最后再将图片导出到pdf上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值