Создание PDF с использованием jsPDF с несколькими изображениями без использования canvas - PullRequest
0 голосов
/ 03 декабря 2018

Я создаю PDF, используя jsPDF.Печать PDF успешно.PDF должен содержать несколько изображений.Невозможно создать PDF со многими изображениями.Код как указано ниже. Ошибка - LoadImage вызывается с максимальным значением переменной цикла 'i' .Я хочу, чтобы функция обратного вызова - «LoadImage» вызывалась с соответствующим индексом (переменной цикла), который был установлен, когда обратные вызовы были назначены событию загрузки каждого из изображений.Заранее спасибо за ваше время и поддержку.Цените ваши потраченные усилия.

var pageCount = 1;
var displayedImagecount = 0;
var imageCount = 0;
var imageArrPageNo = [];
var imageArrImg = [];
var imageArrY = [];
function PrintProduct(doc) {
var rowCount = 0;
var y = 102;

imageCount = document.getElementById("qpartsTable").rows.length * 1 + 1;
for (var i = 1; i <= (document.getElementById("qpartsTable").rows.length - 1); i++) {

    // Image
    var img = new Image();

    imageArrPageNo[i] = pageCount; // pageCount is set and updated whereever requried
    imageArrY[i] = y; // y is updated in loop 
    img.addEventListener('load', function() {
        LoadImage(i, doc);
        });
        img.src = '../Images/product.png';
        imageArrImg[i] = img;

        y += 18;
    }
}
function LoadImage(index, doc) {
    doc.setPage(imageArrPageNo[index]);
    doc.addImage(imageArrImg[index], 'png', 53, imageArrY[index], 20, 20);
    ++displayedImagecount;
    PrintPDF();
}
function PrintPDF() {
    if (displayedImagecount > imageCount) {
        window.open(doc.output('bloburl')); // prints PDF successfully - tested
    }
}
...