Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

177
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda