Вернуть canvas.toDataURL в массив с помощью pdfjs - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь получить обещание вернуть меня в виде массива, а затем сохранить изображения в базе данных, мой код выглядит следующим образом:

var arrayimg = [];
for (var i = 0; i < row.documents.length; i++ ){
    if( row.documents[i].image === null ) {

        var url = row.documents[i].adjruta+row.documents[i].adjnombre;
        var iddocdetalle = row.documents[i].id_docdetalle;

        pdfjsLib.GlobalWorkerOptions.workerSrc = '<?php echo base_url() ?>vendors/pdf/build/pdf.worker.js';
        var loadingTask = pdfjsLib.getDocument('<?php echo base_url() ?>'+url);
        loadingTask.promise.then(function(pdf) {
            pdf.getPage(1).then(function(pag) {
                var viewport = pag.getViewport(0.2);

                var canvas = document.createElement('canvas');
                var context = canvas.getContext('2d');

                canvas.height = viewport.height;
                canvas.width = viewport.width;

                var renderContext = {
                    canvasContext: context,
                    viewport: viewport,
                };
                var renderTask = pag.render(renderContext);
                arrayimg.push([iddocdetalle,
                        renderTask.promise.then(function () {
                            return canvas.toDataURL();
                            canvas.remove();
                        })
                    ]);

            });
            return Promise.all(arrayimg);

        }).then(function(wp){
            console.log('final');
            console.log(wp);
        }); 
    }                               
} //End for var i

два pdf в l oop, вернуть два для массива первый пустой, а последний в индексе 0 - iddocdetalle, а индекс 1. - обещание.

Мне нужен arrayimg с правильными значениями.

Помогите мне.

...