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

178
Vistas
La carga de PDF es extremadamente lenta para archivos grandes usando pdf.js

Estoy enfrentando grandes problemas de rendimiento al cargar documentos pdf grandes (alrededor de 30/40 MB) usando pdf.js. Soy nuevo en la forma en que funciona y leí mucho al respecto, pero nada ayudó.

A continuación se muestran mis ejemplos de código. En archivo HTML

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

En el archivo JS, tengo el siguiente método.

 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); } }); }

Leí sobre el uso de getImageData() y putImageData() en contexto para usar en tal escenario, pero no pude hacerlo funcionar. Cualquier ayuda sería muy apreciada.

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