¿Como puedo mostrar en html un archivo pdf que viene desde el servidor codificado en base 64?

publicado por: Anonymous

En el servidor, se convierte de bytes[] a string, usando un convertidor file64Bse, ese string no me sirve para mostrar pdf en el html, como si sirve para una imagen gif o png. He usado la etiqueta e pero solo funciona con archivos pdf que estan en mi disco local y los quiero mostrar. Lo que busco hacer es a traves de ese string que viene del servidor, poder mostrar el pdf, ya sea en un nuevo tab o en la misma ventana.

el codigo que tengo es el sgte:
<embed src="data:base64,JVBERi0xL....." type="application/pdf" width="100%" height="600px" />

En el src de la etiqueta está en string que fue convertido de bytes a string con un decodificador base64, ese string aparentemente no sirve para mostrar el archivo pdf, qué solución le darian uds si tienen solo estos datos para mostrar un pdf en el browser? He visto ejemplos con etiquetas embed, iframe, object, todos le incluyen el string que representa al archivo y eso es todo, pero yo no logro visualizar de esa manera, solo imprime todo el string en la pantalla.

solución

Para descargar el documento:

<a download='documento' href=[base64] title='Descargar' />

Tienes que sustituir [base64] por la cadena que te llega del servidor.

Por otro lado, para mostrar el pdf:

var obj = document.createElement('object'); 
obj.style.width = '100%';
obj.style.height = '842pt';
obj.type = 'application/pdf';
obj.data = 'data:application/pdf;base64,' + [base64];
document.body.appendChild(obj);

Igualmente [base64] es el codigo base64 que te llega del servidor.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *