Я пытаюсь использовать библиотеку jsPDF. Я хочу загрузить и вставить изображение и экспортировать файл PDF.
Моя проблема связана с загрузкой изображения. Я делаю это: var imageData = getBase64Image('thinking-monkey.jpg');
и я должен получить dataURL в base64 внутри imageData
.
Моя функция getBase64Image()
делает следующее:
function getBase64Image(url) {
var img = new Image();
var dataURL;
img.src = url;
img.onload = function() {
var canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
var context = canvas.getContext('2d');
context.drawImage(img, 0, 0);
dataURL = canvas.toDataURL('image/jpeg');
}
return dataURL;
}
Но он возвращает «неопределенное», потому что изображение размером около 65 Кб и загружается не сразу. Итак, когда в return dataURL;
переменная все еще не определена.
Я пытался добавить setTimeout()
прямо перед return dataURL;
, но, похоже, это не сработало.
Как я могу дождаться полной загрузки изображения, чтобы вернуть dataURL?
Спасибо.