Estoy desarrollando una aplicación utilizando la biblioteca PDFTron PDF Viewer. Le permite cargar un PDF de varias maneras:
https://www.pdftron.com/documentation/web/guides/basics/open/
Mi controlador ASP.NET puede volver más fácilmente a la vista un Byte[] con el contenido del PDF. Mi problema es cómo utilizar mejor este Byte[] para cargar el PDFTron Viewer (javascript) en la vista. La única forma en que he logrado hacer esto hasta ahora consiste en convertir el Byte[] en una cadena Base64 y luego devolverlo a la vista. Luego, la vista usa el código JS para convertir la cadena Base64 en un Blob usando la función sugerida por los documentos de PDFTron:
function base64ToBlob(base64) { const binaryString = window.atob(base64); const len = binaryString.length; const bytes = new Uint8Array(len); for (let i = 0; i < len; ++i) { bytes[i] = binaryString.charCodeAt(i); } return new Blob([bytes], { type: 'application/pdf' }); };Luego, ese Blob se puede cargar en el visor de PDFTron. Sin embargo, esto parece ser bastante complicado y lento. ¿Existe una forma más directa de que PDFTron Viewer pueda utilizar C# Byte[]? PDFTron Viewer aceptará un Blob o ArrayBuffer, pero no estaba seguro de cuál sería la mejor manera de convertir el Byte[] que recibe la vista en cualquiera de estos tipos.