jsPDF добавить проблему с изображением при открытии с Adobe Acrobat Reader

1

При нажатии кнопки я создаю PDF файл, добавляя к нему изображение и текст, а затем сохраняя его на диске.

var pdf = new jsPDF('l', 'pt', [1600, 1000]);

var img = new Image;
img.src = 'http://localhost:29576/Images/logo.png';
img.src = logoUrl;

pdf.addImage(img, 10, 10)
pdf.save();

Теперь все работает отлично, и я могу просмотреть это из Chrome. Но в данный момент я открываю это из Acrobat Reader, я получаю сообщение об ошибке:

Ошибка обработки страницы. Не удалось прочитать этот документ (110)

Изображение 174551

  • 0
    @Bharata Бхарата, твой ответ не является решением и даже не точен до определенной степени. Нам не нужно делать это при загрузке изображения, поскольку оно работает без него и особенно при работе с большим количеством изображений, поскольку обратный вызов всегда будет выполняться перед загрузкой изображения. Я исправил проблему, установив уровень сжатия, github.com/MrRio/jsPDF/issues/1036
Теги:
pdf
jspdf
acrobat

1 ответ

0

У вас две ошибки:

  • вы пишете img.src=... два раза. Во втором случае вы перезаписываете первое значение;
  • вам нужно подождать, пока изображение не будет загружено. Это означает, что вы должны добавить + сохранить изображение только после onload события.

Решение

var pdf = new jsPDF('l', 'pt', [1600, 1000]),
    img = new Image,
    logoUrl = 'http://localhost:29576/Images/logo.png';

img.onload = function()
{
    pdf.addImage(img, 10, 10);
    pdf.save('example.pdf');
};
img.src = logoUrl;
  • 0
    Хорошо, я видел это решение. Но как тогда он работает при открытии с помощью chrome и не открывается при открытии с помощью Adobe Acrobat?
  • 0
    @Simsons, я не понимаю: какое решение не работает в Akrobat Reader? Мое решение или ваше решение? Или, может быть, вы хотите знать только, почему ваше решение не работает с Akrobat Reader? Мое решение работает?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню