PHP - Mostrar un pdf dentro de una tabla con php(solucion)

 
Vista:
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Mostrar un pdf dentro de una tabla con php(solucion)

Publicado por Gonzalo (615 intervenciones) el 02/09/2014 19:46:35
este post intenta ser mas bien una guia.
estube varios dias tratando de mostrar unas facturas en pdf por web usando php, despues de muchos intentos estube a punto de rendirme cuando encontre este ejemplo y la verdad trabaja muy muy bien, se los paso por si lo llegan a necesitar.
basicamente el problema es el encabezado del explorador, si lo mandas como texto no muestra el pdf, te muestra solo basura, y si lo mandas como pdf te cancela el utf-8 y adios acentos aparte de que no muestra el archivo, solo un triste recuadro en blanco.
bueno, como se debe hacer? inicia tu pagina como siempre y manda el encabezado normal.

meta http-equiv="Content-Type" content="text/html; charset=utf-8"

y arma la tabla como siempre, aqui voy a usar una tabla con 2 renglones divididos en 2 columnas, voy a mostrar el pdf en el segundo renglon, segunda columna (el cuadro de abajo a la derecha)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<table>
<tr>
<td>celda 1.1
</td>
<td>celda 1.2
</td>
</tr>
<tr>
<td>celda 2.1
</td>
<td>celda 2.2 (aqui va el pdf)
</td>
</tr>
</table>

bien el comando para mostrar un pdf es este

1
<iframe src="Factura.Pdf'" width="600" height="780" style="border: none;"></iframe>

pero NO FUNCIONA ya que el header se inicio como utf-8, bien, la solucion es cambiar el nombre del archivo en pdf por otro en php y pasar el nombre del archivo como GET, solo voy a mostrar la celda 2.2 ok?

1
2
3
<td>celda 2.2 (aqui va el pdf)
<iframe src="MostrarFactura.php?Archivo=Factura.Pdf'" width="600" height="780" style="border: none;"></iframe>
</td>

les juro que eso es todo.
ahora el archivo MostrarFactura.php

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$file ='Path\Del\Pdf\'.$_GET["Archivo"];
 
$filename = $_GET["Archivo"];
 
header('Content-type: application/pdf');// esta linea fue mi dolor de cabeza
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');
 
@readfile($file);
?>

ustedes agreguen la seguridad que consideren necesaria, asi como está funciona exelente.
esto abre otra posibilidad, por ejemplo, mostrar a tabla con todas las facturas y crear un evento que al dar click en x factura la muestre en algun lado dentro de la pagina sin tener que refrescar la pagina, ... y lo pude hacer combinando php con javascript y Ajax!!!!. :):):):):):):):):):)
suerte, salu2.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Mostrar un pdf dentro de una tabla con php(solucion)

Publicado por xve (6935 intervenciones) el 02/09/2014 21:20:36
Muy bueno Gonzalo!!! gracias por compartirlo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Mostrar un pdf dentro de una tabla con php(solucion)

Publicado por Gonzalo (615 intervenciones) el 02/09/2014 22:58:59
Fe de erratas:

pero NO FUNCIONA ya que el header se inicio como utf-8

quise decir: pero NO FUNCIONA ya que el header se inicio como Content="text/html; charset=utf-8"

<iframe src="Factura.Pdf'" (sobra un apostrofe ' despues de Factura.Pdf) debe ser
<iframe src="Factura.Pdf"

<iframe src="MostrarFactura.php?Archivo=Factura.Pdf'" (sobra un apostrofe ' despues de Factura.Pdf) debe ser
<iframe src="MostrarFactura.php?Archivo=Factura.Pdf"

gracias, salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Mostrar un pdf dentro de una tabla con php(solucion)

Publicado por Brayam (1 intervención) el 06/10/2016 21:49:14
El codigo funciona, pero no carga el documento que quiero mostrar, aparece un mensaje que dice: 'Se ha producido un error al cargar el documento PDF.'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar