如何在Phonegap应用程序中将渲染的Highchart图表导出为pdf / png / jpeg?

时间:2013-02-12 06:48:21

标签: javascript cordova highcharts phonegap-plugins canvg

我正在尝试使用

chart.exportChart({
  type: 'application/pdf',
  filename: 'my-pdf'
});

在Phonegap应用程序中没有成功,尽管在浏览器中一切正常。

我的问题:

我想在iOS电子邮件客户端中将渲染图表附加为pdf / png / jpeg。如何使用chart.exportChart或任何其他方式将下载的内容保存到iOS应用程序沙箱?我应该在filename方法的chart.exportChart密钥中提供应用程序沙箱路径吗?

以下是我试过的:(我在cordova-1.6.1.js上)

window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem;
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFileSys, fail);


function fail() {

}

function gotFileSys(fileSystem) {
    chart.exportChart({
       type: 'application/pdf',
    filename: fileSystem.root.fullPath+"/my-pdf"
    });
}

上述工作和控制台说 -

  

[INFO]成功回调错误:File1 = TypeError:' undefined'是   不是一个功能

PS:我尝试的方式是一种绝望的行为:(

1 个答案:

答案 0 :(得分:1)

可以这样做 -

canvg(document.getElementById('canvas'), chart.getSVG());
var canvas = document.getElementById("canvas") ; 
var img = canvas.toDataURL("image/png").replace("data:image/png;base64,", ""); //img is base64 encoded and can be persisted in the App Sandbox.

需要编写PhoneGap插件并使用Matt's Category将base64编码的img转换为图像,并将二进制文件保存在App Sandbox中。

here提供了

canvg 脚本,here也应包含在标记中。