Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用mpdf将谷歌图表导出为PDF的问题_Php_Charts_Google Api_Google Visualization_Mpdf - Fatal编程技术网

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