小编Isa*_*ior的帖子

Google Charts未与Wkhtmltopdf合作

我正在尝试使用Google Charts在PDF中生成多个图表.对于PDF,我使用CakePDF和Wkhtmltopdf引擎.我似乎遇到了将Google Chart代码实际加载到PDF中的问题.这是我目前的Javascript代码.

<script type="text/javascript" src="https://www.google.com/jsapi">
</script>
<script type="text/javascript">
google.load('visualization', '1.0', {'packages':['corechart']});
//setTimeout(function() {google.load('visualization', '1.0', {'packages':['corechart']});}, 100);
google.setOnLoadCallback(drawChart);
function drawChart(doIt,taken, total, element) 
{
    if (typeof doIt === 'boolean')
    {
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Type');
        data.addColumn('number', 'Courses');
        data.addRows([
          ['Taken', taken],
          ['Remaining', total - taken]
        ]);
        var options = {
                       'width':40,
                       'height':40};
        var chart = new google.visualization.PieChart(document.getElementById(element));
        chart.draw(data, options);
    }
 }
</script>
Run Code Online (Sandbox Code Playgroud)

问题是,当我为可视化软件包执行google.load时,它会导致Wkhtmltopdf返回错误,指出引擎没有返回任何数据.我发现了一个我认为类似的问题为什么google.load会导致我的页面空白?所以我试着做setTimeout(function(){google.load('visualization','1.0',{'packages':['corechart']});},100); 这个解决方案的问题是,如果延迟太低,页面将返回没有错误,但它将完全空白; 但是,如果我将延迟设置得太高,页面将不会加载包,Javascript将会中断

var data = new google.visualization.DataTable();
Run Code Online (Sandbox Code Playgroud)

当我调用该函数时.另外,那张海报说明了document.write()的问题,但如果我在将内容添加到页面之前或之后添加document.write()行,则没有问题.如果有人知道如何让Google Charts与Wkhtmltopdf合作并且可以帮助我,我将不胜感激.


好的,为了让API有更多的时间加载,我将函数调用到PHP的末尾.现在,它只是设置一个元素数组,需要在其中绘制图形和正确的值,然后它使用数组中的值调用函数.我不知道现在的问题是什么,因为它chart.draw(data, options);现在正在破裂.它似乎是获取正确的值和元素传递给它.

这似乎真的很迂回,因为它是.无论出于何种原因,Wkhtmltopdf无法读取我在javascript标签中放置的任何内容.我已尽力让它读取它,但它不会哈哈.CakePDF插件可以读取Javascript,所以我的JS代码是默认的PDF布局.然后在WkhtmltoPdf呈现的实际视图中,我创建了一个元素和值的数组.然后我这样做(在许多不同的可能解决方案之后,这是我能够调用JS函数的唯一方法)

for …
Run Code Online (Sandbox Code Playgroud)

javascript google-visualization wkhtmltopdf

6
推荐指数
2
解决办法
4115
查看次数