我正在尝试呈现包含谷歌图表的报告页面的 pdf 视图以显示我的数据。目前我正在将图表转换为 url 编码的 JPEG。此阶段的图像质量仍然很好,但是一旦我使用 JSPDF 将其添加到 pdf 文档中,图像质量就会严重降低。
这是我当前方法的 jsfiddle:http: //jsfiddle.net/5c5YX/3/
function getImgData(chartContainer) {
var chartArea = chartContainer.getElementsByTagName('svg')[0].parentNode;
var svg = chartArea.innerHTML;
var chartDoc = chartContainer.ownerDocument;
var canvas = chartDoc.createElement('canvas');
canvas.setAttribute('width', chartArea.offsetWidth);
canvas.setAttribute('height', chartArea.offsetHeight);
canvas.setAttribute(
'style',
'position: absolute; ' +
'top: ' + (-chartArea.offsetHeight * 2) + 'px;' +
'left: ' + (-chartArea.offsetWidth * 2) + 'px;');
chartDoc.body.appendChild(canvas);
canvg(canvas, svg);
var imgData = canvas.toDataURL('image/JPEG');
doc.addImage(imgData, "JPEG", 10,10);
doc.addImage(imgData, "JPEG", 10,100);
canvas.parentNode.removeChild(canvas);
return imgData;
}
有谁知道对此的修复或这样做的原因?或者,如果不是;有没有不同的方法可以呈现包含谷歌图表数据的pdf(最好是客户端)?
任何帮助将不胜感激!