Antes de comenzar: lista de verificación
¿Qué estás intentando lograr?
He actualizado de la versión 3.0.5 a la 4.0.5. Después de la actualización, mis archivos PDF ya no se mostrarán y seguirá "cargándose".
Describe las soluciones que has probado
Muestro mi archivo PDF como base64-data pero también probé bytes simples. El uso de los ganchos de notificación proporcionados me da la retroalimentación de que los datos de origen se cargan correctamente.
La depuración en su código me lleva a Document.js y este código:
cancellable = (0, _utils.makeCancellable)(loadingTask.promise);
_this.runningTask = cancellable;
_context.next = 23; // until here is everything fine
return cancellable.promise; // this promise is never resolved
Información Adicional
Yo uso tu lib directamente:
import { Document, Page } from "react-pdf/dist/entry.webpack";
<Document
file={ isDataBase64 ? `data:application/pdf;base64,${file}` : file }
loading="Das PDF wird geladen..."
onLoadSuccess={ ::this.onDocumentLoadSuccess } // show additional buttons for zoom
className="pdfDocument"
renderMode="svg"
>
<Page
key={ `page_${1}` }
pageNumber={ 1 }
className="pdfPage"
renderMode="svg"
scale={ pageScale } />
</Document>
Te adjunto un PDF de muestra. Copiar y pegarlo en su navegador funcionará. Usarlo en el parámetro para <Document file={<pdfdata here>}>
no funciona.
samplePDF_base64.txt
Medio ambiente
¡Definitivamente funcionó para mí tanto pegarlo en el campo de dirección del navegador como pasarlo como una URL a file
prop en React-PDF! ¿Quizás estás "basándote en 64" dos veces?
No, este pdf-data es igual a la cadena, paso a Document.
¿Hay alguna forma de averiguar qué está haciendo PDFjs?
Maldita sea, este almacenamiento en caché.
Eliminar todos los cachés del sitio en Chrome hizo que funcionara.
¡Gracias por tu rápida respuesta!
En caso de que sea útil para alguien más, también experimenté el mismo comportamiento de promesa que nunca se resuelve cuando configuré accidentalmente la URL del trabajador (pdfjsLib.GlobalWorkerOptions.workerSrc = "....") para que apunte al pdf principal. js en lugar del archivo pdf.worker.js por error.
Comentario más útil
En caso de que sea útil para alguien más, también experimenté el mismo comportamiento de promesa que nunca se resuelve cuando configuré accidentalmente la URL del trabajador (pdfjsLib.GlobalWorkerOptions.workerSrc = "....") para que apunte al pdf principal. js en lugar del archivo pdf.worker.js por error.