Resumen: mostrar PDF directamente en el navegador usando PHP, es decir, servir un archivo pero no descargarlo, sino mostrarlo en el navegador.
PHP: Mostrar PDF en navegador
Varios navegadores actuales permiten la visualización de archivos PDF directamente, sin descargar. Para servir un archivo PDF con PHP directamente en el navegador necesitamos encabezados.
Primero lo siguiente:
<?php
header("Content-type: application/pdf");
header("Content-Disposition: inline; filename=documento.pdf");
Después debes mostrar el contenido raw del PDF. Podrías usar file_get_contents
pero para mostrar el archivo directamente al navegador se prefiere usar readfile
.
El ejemplo completo queda así:
<?php
header("Content-type: application/pdf");
header("Content-Disposition: inline; filename=documento.pdf");
readfile("1_hola.pdf");
El nombre documento.pdf
es por si el usuario lo descarga; con ese nombre se guardará. En este caso se asume que 1_hola.pdf
es un documento que está en el mismo directorio del script (también puedes colocar la ruta relativa o absoluta).
Al probarlo aparece:
De este modo podemos visualizar un PDF directamente en el navegador con PHP.
Conclusión
Recuerda que antes de los encabezados no debes imprimir ni mostrar nada. Tampoco debes mostrar nada después de readfile; sí puedes hacer otros procesos, pero nada que “ensucie” los datos.
Muy interesante tu aporte.
Me gustaria conocer mas de esta opcion, no tienes idea de cuanto tiempo he invertido en este proceso de mostrar un pdf en el navegador desde cakephp 4.3. Todavia no lo he logrado pero creo que con tu ayuda podría haacerlo.