En realidad, recibo bytes de pdf de la llamada api y quiero mostrar datos de pdf a medida que se descarga el contenido, pero no puedo acceder a los datos de respuesta antes de que se complete la solicitud y, para archivos pdf grandes, tengo que esperar unos segundos para que se complete la solicitud. completar y mostrarlo.
Para esta pregunta hay 4 tipos genéricos de "PDF"
Una repetición de texto de un PDF (por lo tanto, no es un PDF) a menudo servía como un flujo uri de datos de texto base64 que se descargaba y convertía en el navegador en un verdadero PDF. Por lo tanto, es ideal para flujos de archivos muy pequeños, pero la demora es que debe inflarse para transmitir, luego se recibe y convierte (recomprime) al 100% en el dispositivo antes del mismo comportamiento que un PDF verdadero, por lo tanto, el más lento para transmitir y más lento de ver.
Un PDF estándar que tiene un aguijón en la cola que no se puede ver hasta que se haya descargado el archivo completo y la tabla de referencias externas del tráiler puede indicar dónde se pueden encontrar los innumerables bits de la página 1, por lo que lleva tiempo descomprimir y descompilar la pantalla. gráficos de flujo. Por lo tanto, la transmisión no tiene valor para la visualización temprana, solo un transporte más rápido que base64.
Un PDF liniarizado, se ha diseñado para mostrar la página 1 al llegar, ya que mantiene parte de la cola al principio del archivo (de ahí el término Web optimizado). Sin embargo, tiene la misma necesidad de descargarse completamente en el dispositivo antes de TODOS los Se pueden ver las páginas. Aquí descrito por PDFTron https://www.pdftron.com/blog/mobile/streaming-a-pdf-from-the-web/
Una transmisión de transmisión especializada en la que el pdf se fragmenta y se envía a un visor especializado que vuelve a ensamblar las piezas según sea necesario. Por lo tanto, es una solución comercial. Un ejemplo que se me ocurre es PDFTron. No es estrictamente su método de transmisión de archivos PDF promedio, por lo que es poco probable que se vea en los lectores de PDF públicos en general.
Por lo tanto, en respuesta a su pregunta, debe convertir sus archivos PDF para que sean "linealizados".
Probablemente desee transmitir los datos mediante una API de flujos .
Aquí hay un ejemplo de un png cargado (en "trozos"): https://mdn.github.io/dom-examples/streams/png-transform-stream/
(Tendrá que deshabilitar el almacenamiento en caché y acelerar su velocidad de Internet en las herramientas de desarrollo para ver cómo se carga en partes).
Creo que PDF.js admite la transmisión