将谷歌图表另存为 pdf

Posted

技术标签:

【中文标题】将谷歌图表另存为 pdf【英文标题】:Save google charts as pdf 【发布时间】:2015-08-19 18:27:55 【问题描述】:

我正在尝试将饼图另存为 pdf 文件,如 http://keepcoding.ehsanabbasi.com/php/convert-google-chart-to-png-and-pdf/ 在 php.chartsrc 中包含 javascript 会显示以下值而不是 png 图像源

function ()if(!this.b||!this.$||!this.Ua)throw m("Chart has not finished drawing.");var a=new Ql(this.V,this.Aa),b=Tl(this.ma)[Wb](ih),a=YO(b,a),a=new EO(b,a),c=new RO(b),a=this.sO(c,a),c=yY(this.ig,this.$,this.Ua);a.Lp(this.$,c);return b[cc][0].toDataURL(Ssa) failed (filesystem path '/var/www/html/function ()if(!this.b||!this.$||!this.Ua)throw m("Chart has not finished drawing.");var a=new Ql(this.V,this.Aa),b=Tl(this.ma)[Wb](ih),a=YO(b,a),a=new EO(b,a),c=new RO(b),a=this.sO(c,a),c=yY(this.ig,this.$,this.Ua);a.Lp(this.$,c);return b[cc][0].toDataURL(Ssa)')

 $script ="

        google.setOnLoadCallback(drawChart);
        function drawChart()  //code for drawing chart
        var chart = new google.visualization.PieChart(document.getElementById('piechart'));

        google.visualization.events.addListener(chart, 'ready', function ()      
        var chartsrc = chart.getImageURI();
     );

      $doc->addScriptDeclaration($script);
      echo "<div id='piechart'></div>";

【问题讨论】:

Save google chart as image的可能重复 @eereethis 不是重复的问题。 【参考方案1】:

我们在 @cloudformatter 中添加了支持,以支持将所有 Google 图表输出为 PDF、图像、XPS 和其他格式。你可以看看下面的链接。

Google Charts @cloudformatter 支持页面: http://www.cloudformatter.com/GoogleCharts

整个 Javascript 的文档: http://www.cloudformatter.com/CSS2Pdf.APIDoc.Usage

上面的 Google Charts 网页上有一些关于实现 Handler 的提示,该 Handler 在绘制图表后将 SVG 命名空间添加到生成的 SVG。

您可以从顶部的菜单中选择以格式化整个页面,甚至可以从内联菜单中选择以仅将特定图表格式化为 PDF(或其他格式)。

这里还有一个fiddle可以玩:http://jsfiddle.net/zvx6eb7e/10/,PDF按钮后面生成PDF的代码只有这个:

var click="return xepOnline.Formatter.Format('JSFiddle', render:'download', srctype:'svg')";
jQuery('#buttons').append('<button onclick="'+ click +'">PDF</button>');

我要注意一件事 --- 这不是图表到图像到 PDF,这是矢量到 PDF 的图表,用于最高分辨率和最佳数据表示。

【讨论】:

【参考方案2】:

你没有混淆你的报价吗? '&lt;img src='" 应该是 '&lt;img src="'"'&gt;' 应该是 '"&gt;'

我也认为,这个问题已经回答了:Save google chart as image

这里有一个例子:http://jsfiddle.net/asgallant/R8A8P/

【讨论】:

以上是关于将谷歌图表另存为 pdf的主要内容,如果未能解决你的问题,请参考以下文章

将谷歌分析数据 api 连接到 dojo 图表 - php 后端

将 Excel 图表复制并粘贴到 Word 中,无需链接或另存为 GIF

如何通过弹出另存为窗口将 kendo ui dataviz 图表导出为 (.png) 或 (.jpg) 图像格式?

如何将EXCEl中多张Sheet工作表转换成一个PDF

谷歌图表工具提示数字格式科学

如何将谷歌翻译的语音保存至电脑中