我知道这个问题已经不活跃了将近一年,但是既然它没有被接受的答案,我会尝试回答。
向jsPDF添加图表
1. 使用HTML Canvas将图表转换为支持的图像格式(以base64编码的JPEG或PNG格式)。
2. 确保将图像URL传递给addImage函数。
以下是一个示例,演示如何向jsPDF文档中添加图片,而无需包含原始的base64代码。该示例摘自jsPDF的示例。
function demoImages() {
var getImageFromUrl = function(url, callback) {
var img = new Image(), data, ret = {
data: null,
pending: true
};
img.onError = function() {
throw new Error('Cannot load image: "'+url+'"');
};
img.onload = function() {
var canvas = document.createElement('canvas');
document.body.appendChild(canvas);
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0);
data = canvas.toDataURL('image/jpeg').slice('data:image/jpeg;base64,'.length);
data = atob(data);
document.body.removeChild(canvas);
ret['data'] = data;
ret['pending'] = false;
console.log("data",data);
if (typeof callback === 'function') {
callback(data);
}
};
img.src = url;
return ret;
};
var createPDF = function(imgData) {
var doc = new jsPDF();
doc.addImage(imgData, 'JPEG', 10, 10, 50, 50);
doc.addImage(imgData, 'JPEG', 70, 10, 100, 120);
doc.save('output.pdf');
}
getImageFromUrl('thinking-monkey.jpg', createPDF);
}
jsPDF文档良好
您可以从他们的实用文档中学习到很多jsPDF特性。例如源代码,请不要从GitHub下载,因为有一些文件丢失。您可以从这里下载。
注意:为使代码正常工作,请删除basic.js第312行上的分号。
干杯...