Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

180
Vistas
PDF loading is extremely slow for large files using pdf.js

I am facing huge performance issues in loading large pdf documents (around 30/40 MB) using pdf.js I am new to the ways it works and read a lot about it , but nothing helped.

Following is my code samples. In HTML file

<div id="divCanvasTemplate">
    <div id="divCanvasContainer-{pageIndex}" class="canvas-container">
        <canvas id="cnvDesigner-{pageIndex} class="canvas-designer"></canvas>
    </div>
</div>

In JS file , I have the following method.

var _loadFile = function() {
    var pdfjsLib = window['pdfjs-dist/build/pdf'];
    pdfjsLib.GlobalWorkerOptions.workerSrc = _workerUrl;

    $ajax({
        url: "GEtPDFFileBytes",
        type: "GET",
        data: {
            "documentid": _documentId
        },
        success: function(result) {
            var raw = atob(result);
            var loadintask = pdfjsLib.getDocument({
                data: raw
            });

            loadingtask.promise.then(function(pdfDoc_) {
                _pageCount = pdfDoc_._pdfInfo.numPages;
                _currentpageNumber = _getbasePage();
                var canvasTemplate = $("#divCanvasTemplate").html();
                var activeRange = _getActiveRange(_currentpageNumber);

                for (let pagenumber = 1; pagenumber <= _pagecount; pagenumber++) {
                    var canvashtml = canvasTemplate.replace(/pageindex}/g, pagenumber);
                    $("#divMasterCanvas").append(canvasHtml);
                    pdfDoc = PdfDoc_;
                    renderPDFPage(pageNumber);
                }
            });
        }
    });
}
}

function renderPDFPage(num) {
    pdfDoc.getPage(num).then(function(page) {
            var currentpagenumber = page._pageindex + 1;
            var viewport = page.getViewPort({
                scale: scale
            });
            var canvas = document.getelementbyid('cnvDesigner-' + currentpagenumber);
            var context = canvas.getcontext('2d');

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

            var rendercontext = {
                canvasContext: context,
                viewport: viewport
            };

            var rendertask = page.render(rendercontext);
        }
    });
}

I read about using getImageData() and putImageData() in context to use in such scenario, but unable to get it work. Any help would be greatly appreciated.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda