Изображение не отображается при добавлении изображения в PDF-файл

#javascript

#javascript

Вопрос:

Я пытаюсь создать PDF с изображением. У меня есть URL изображения, как показано ниже:

var url = «https://firebasestorage.googleapis.com/v0/b/dicom-poc.appspot.com/o/images/NiouCzjBYna8Wx1VO2x3UST5tDc2/2020-10-07/05:03:58/visualization/L-CC.png?alt=mediaamp;token=dce8859a-3427-432b-8176-590e9569aad9»

и мой код здесь:

 var pdf = new jsPDF();
var img = new Image();
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
img = document.createElement('img');
img.src = url;
img.onload = function(){
   canvas.height = img.height;
   canvas.width = img.width;
   var dataURL = canvas.toDataURL('image/png')
   var base64 = dataURL.replace(/^data:. ;base64,/, '');  
   pdf.text("Hi");
   pdf.addImage(base64,'PNG',5,5,50,50);
   pdf.save("download.pdf");
}
  

После выполнения приведенного выше кода PDF успешно загружается с текстом «Привет», но изображения там нет.
Я пробовал несколько решений, предложенных людьми, но безрезультатно.
Не могли бы вы помочь мне сделать то же самое.

Заранее спасибо!

Ответ №1:

Вы ничего не рисовали на холсте.

 var pdf = new jsPDF();
var img = new Image();
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
img = document.createElement('img');
img.src = url;
img.onload = function(){
   canvas.height = img.height;
   canvas.width = img.width;
   ctx.drawImage(img, img.width, img.width);
   var dataURL = canvas.toDataURL('image/png')
   var base64 = dataURL.replace(/^data:. ;base64,/, '');  
   pdf.text("Hi");
   pdf.addImage(base64,'PNG',5,5,50,50);
   pdf.save("download.pdf");
}
  

Комментарии:

1. Я добавил «ctx.drawImage (img, img.width, img.width);» для рисования на холсте, но это вызвало ошибку: ** SecurityError: не удалось выполнить ‘toDataURL’ на ‘HTMLCanvasElement’: испорченные холсты не могут быть экспортированы. ** . Чтобы устранить эту ошибку, я добавил img.setAttribute(‘crossorigin’, ‘Anonymous’); но все равно он сохраняется. Пожалуйста, помогите мне.

2. Вы поместили его перед установкой img.src?

3. Привет, большое тебе спасибо, Муса. Ты крут! Вы решили мою проблему.