Php 使用mpdf将谷歌图表导出为PDF的问题
我用谷歌图表创建了一个图表,代码如下:Php 使用mpdf将谷歌图表导出为PDF的问题,php,charts,google-api,google-visualization,mpdf,Php,Charts,Google Api,Google Visualization,Mpdf,我用谷歌图表创建了一个图表,代码如下: <script> var holderarray = [ ['Question', '% Scores'], ['Question 1', 67], ['Question 2', 18], ['Question 3', 40], ['Question 4', 66], ['Question 5', 37], ['Question 6', 98], ['Question 7', 50], ['Question 8', 75], ['Que
<script>
var holderarray = [
['Question', '% Scores'], ['Question 1', 67], ['Question 2', 18], ['Question 3', 40], ['Question 4', 66], ['Question 5', 37], ['Question 6', 98], ['Question 7', 50], ['Question 8', 75], ['Question 9', 66], ['Question 10', 37]
];
google.charts.load('current', {packages: ['corechart', 'bar']});
google.charts.setOnLoadCallback(drawMaterial);
function drawMaterial() {
var data = google.visualization.arrayToDataTable(holderarray);
var materialOptions = {
colors: ['#15e01b'],
chart: {
title: 'Value selected'
},
hAxis: {
title: '% Score',
minValue: 0, maxValue: 100
},
vAxis: {
title: 'Questions'
},
bars: 'horizontal'
};
var chart_div = document.getElementById('chart_div');
var chart = new google.visualization.BarChart(chart_div);
// Wait for the chart to finish drawing before calling the getImageURI() method.
google.visualization.events.addListener(chart, 'ready', function () {
chart_div.innerHTML = '<img src="' + chart.getImageURI() + '">';
//console.log(chart_div.innerHTML);
});
chart.draw(data, google.charts.Bar.convertOptions(materialOptions));
}
var holderarray=[
[问题','%Scores'],[问题1',67],'问题2',18],'问题3',40],'问题4',66],'问题5',37],'问题6',98],'问题7',50],'问题8',75],'问题9',66],'问题10',37]
];
load('current',{packages:['corechart','bar']});
google.charts.setOnLoadCallback(drawMaterial);
函数drawMaterial(){
var data=google.visualization.arrayToDataTable(holderarray);
变量材料选项={
颜色:['#15e01b'],
图表:{
标题:“选定值”
},
哈克斯:{
标题:'%Score',
最小值:0,最大值:100
},
言辞:{
标题:“问题”
},
酒吧:“水平”
};
var chart_div=document.getElementById('chart_div');
var chart=新的google.visualization.BarChart(chart\u div);
//在调用getImageURI()方法之前,请等待图表完成绘制。
google.visualization.events.addListener(图表'ready',函数(){
chart_div.innerHTML='';
//log(chart\u div.innerHTML);
});
绘制(数据,google.charts.Bar.convertOptions(materialOptions));
}
这很好,现在尝试使用MPDF导出此图形,我将DIV放在$html变量中显示图形,以导出为PDF,如下所示:
include("mpdf/mpdf.php");
$mpdf=new mPDF();
$html = "
Testing PDF Creator<br>
<div id='chart_div' style='height:300px;'></div>
";
echo "$html";
$mpdf->WriteHTML($html);
$mpdf->Output();
$mpdf->debug = true;
exit
include(“mpdf/mpdf.php”);
$mpdf=新的mpdf();
$html=”
测试PDF创建者
";
回显“$html”;
$mpdf->WriteHTML($html);
$mpdf->Output();
$mpdf->debug=true;
出口
echo仍然显示图形,但生成的PDF仅包含“Test PDF Creator”而不包含图形。我已经搜索了很多修复程序,但根本无法工作。。。请HELP您的pdf将包含
测试pdf Creator
,因为这就是您提供的所有内容,在您的php中,没有运行javascript来实际绘制图表如果您在前端显示此图表,并且用户希望将其导出为pdf,您可以从页面中获取呈现的html,通过ajax将其发送到php脚本,然后在那里使用它填充pdf。否则,您将需要了解如何在服务器端呈现图形。另请注意,如果您确实获得html并发送它,您可能会发现您也需要css。最好尝试在客户端将图表转换为图像,并将其发送到后端以放入pdfTesting PDF Creator我将Javascript设置为以与加载到DIV相同的方式加载图形。但不会。即使是$html变量,如果我回送它,它也会显示图表,但是当我从中生成pdf时,没有图表如果你回送它,当浏览器呈现html时,它会运行javascript来构建图表。当您在php中将html编译成服务器端的变量时,html将包含父元素和javascript代码(或指向它的链接),但javascript代码并未实际执行,因此它不会生成图表。您的pdf将包含测试pdf创建者的
,因为这就是您在php中给出的所有内容,没有运行javascript来实际绘制图表如果您在前端显示此图表,并且用户希望从那里将其导出为pdf,您可以从页面获取呈现的html,通过ajax将其发送到php脚本,然后在那里使用它填充pdf。否则,您将需要了解如何在服务器端呈现图形。另请注意,如果您确实获得html并发送它,您可能会发现您也需要css。最好尝试在客户端将图表转换为图像,并将其发送到后端以放入pdfTesting PDF Creator我将Javascript设置为以与加载到DIV相同的方式加载图形。但不会。即使是$html变量,如果我回送它,它也会显示图表,但是当我从中生成pdf时,没有图表如果你回送它,当浏览器呈现html时,它会运行javascript来构建图表。在php中将html编译为服务器端的变量时,html将包含父元素和javascript代码(或指向它的链接),但javascript代码并未实际执行,因此它从未构建图表
include("mpdf/mpdf.php");
$mpdf=new mPDF();
$html = "
Testing PDF Creator<br>
<div id='chart_div' style='height:300px;'></div>
";
echo "$html";
$mpdf->WriteHTML($html);
$mpdf->Output();
$mpdf->debug = true;
exit