PHP - Abrir y Descargar pdf generado con FPDF

 
Vista:

Abrir y Descargar pdf generado con FPDF

Publicado por giuli (74 intervenciones) el 04/04/2019 19:22:14
Tengo una aplicacion en la web con PHP. Y con FPDF genero un archivo que queda en el servidor web. De que manera podria visualizarlo en una nuevo pestaña o al menos descargarlo? Lo unico que tengo es:

1
$pdf->Output('ficha.pdf','F');

Ya probe cambiar la letra que se pasa como parametro a la funcion output y nada, no funciona.

Alguna sugerencia?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 10
Ha aumentado su posición en 17 puestos en PHP (en relación al último mes)
Gráfica de PHP

Abrir y Descargar pdf generado con FPDF

Publicado por Luis Javier (3 intervenciones) el 04/04/2019 19:27:56
y el que no te funciona ? o que quieres hacer ?
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

Abrir y Descargar pdf generado con FPDF

Publicado por giuli (74 intervenciones) el 04/04/2019 19:31:30
Quiero que se abra en una nueva pestaña, o por lo menos que se descargue pero si cambio la "F" directamente no se genera.

La documentacion dice:

dest
Destination where to send the document. It can be one of the following:
I: send the file inline to the browser. The PDF viewer is used if available.
D: send to the browser and force a file download with the name given by name.
F: save to a local file with the name given by name (may include a path).
S: return the document as a string.
The default value is I.

Pero la verdad no se.
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: 10
Ha aumentado su posición en 17 puestos en PHP (en relación al último mes)
Gráfica de PHP

Abrir y Descargar pdf generado con FPDF

Publicado por Luis Javier (3 intervenciones) el 04/04/2019 19:39:31
$pdf->Output();

yo asi lo uso, y se me genera en la misma ventana y ahi tiene el boton para descargar
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

Abrir y Descargar pdf generado con FPDF

Publicado por giuli (74 intervenciones) el 04/04/2019 19:46:35
<br />
<b>Fatal error</b>: Uncaught exception 'Exception' with message 'FPDF error: Some data has already been output, can't send PDF file' in C:\xampp\htdocs\gestionweb\fpdf.php:271
Stack trace:
#0 C:\xampp\htdocs\gestionweb\fpdf.php(1063): FPDF-&gt;Error('Some data has a...')
#1 C:\xampp\htdocs\gestionweb\fpdf.php(999): FPDF-&gt;_checkoutput()
#2 C:\xampp\htdocs\gestionweb\views\modules\caja\reportecaja.php(199): FPDF-&gt;Output('ficha.pdf', 'I')
#3 {main}
thrown in <b>C:\xampp\htdocs\gestionweb\fpdf.php</b> on line <b>271</b><br />

Me da ese error..ahora pruebo como decis vos
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
Imágen de perfil de txema
Val: 79
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Abrir y Descargar pdf generado con FPDF

Publicado por txema (28 intervenciones) el 05/04/2019 00:32:23
Hola giuli:

Para visualizarlo en la misma página al mismo tiempo que generas el archivo tienes que poner
1
2
$pdf->Output('ficha.pdf','F');
$pdf->Output();

Si lo que quieres es que aparezca en otra pestaña, desde la página que envías la orden de generarlo (sea form con datos o un simple enlace) añade
1
< ...  target="_blank" rel="noopener noreferrer">
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

Abrir y Descargar pdf generado con FPDF

Publicado por giuli (74 intervenciones) el 05/04/2019 13:08:14
No funciona, estoy llamando al un script desde una peticion ajax, lo genera pero queda en el servidor.
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
Imágen de perfil de italo_pm
Val: 920
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Abrir y Descargar pdf generado con FPDF

Publicado por italo_pm (193 intervenciones) el 05/04/2019 13:44:07
Hola, sin el codigo es dificil ayudarte, pero segun leo

1
No funciona, estoy llamando al un script desde una peticion ajax, lo genera pero queda en el servidor.

Si no recuerdo mal, una request http que contiene informacion raw, no puede ser interpretada por el dom de js, si dices que lo guarda en el server, prueba a utilizar window.location.href o <iframe> o window.open o tambien, al final prueba con readfile('nombre_file.pdf');

salud2
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
Imágen de perfil de txema
Val: 79
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Abrir y Descargar pdf generado con FPDF

Publicado por txema (28 intervenciones) el 05/04/2019 13:47:20
Y el archivo que te genera, ¿lo puedes descargar manualmente?. ¿Está bien configurado?
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

Abrir y Descargar pdf generado con FPDF

Publicado por giuli (74 intervenciones) el 05/04/2019 18:35:57
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$.ajax({
 
        type: "POST",
        url: "/views/modules/caja/reportecaja.php",
        data:{"cajero":idcajero,"idsesion":idsesion,"cambio":rem,"nombre":nombre},
 
 
 
        error: function(){
            alert("error petición ajax");
        },
        success:function(data){
            alert("operacion realizada con exito");
            }
            });

Bueno esa es la llamada ajax.

Y aqui reportecaja.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
<?php
 
 include_once ($_SERVER['DOCUMENT_ROOT'].'/fpdf.php');
 include_once ($_SERVER['DOCUMENT_ROOT'].'/includes/claseConexion.php');
 include_once ($_SERVER['DOCUMENT_ROOT'].'/models/claseCaja.php');
 function obtenerh($ids){
 
 try
    {
        $conexion = Conexion::singleton_conexion();
 
 
        $query="SELECT horainicio FROM sesiones WHERE idsesion=".$ids.";";
 
        $conexion->beginTransaction();
 
        $arrayr=$conexion->query($query);
        $conexion->commit();
        return $arrayr;
    }
    catch(Exception $e)
    {
        die($e->getMessage());
    }
 
 
 }
 function obtenergastos($ids){
 
 try
    {
        $conexion = Conexion::singleton_conexion();
 
 
        $query="SELECT * FROM cajagrande WHERE idsesion=".$ids.";";
 
        $conexion->beginTransaction();
 
        $arrayg=$conexion->query($query);
        $conexion->commit();
        return $arrayg;
    }
    catch(Exception $e)
    {
        die($e->getMessage());
    }
 
 
  }
 $mov=new Caja();
 date_default_timezone_set("America/Argentina/Buenos_Aires");
 $fecha=date("d/m/y");
 $cajero=$_POST['cajero'];
 $sesion=$_POST['idsesion'];
 $cambio=$_POST['cambio'];
 $arraymov=$mov->obtenerMovs($cajero,$sesion);
 $arraygastos=obtenergastos($sesion);
 $pdf = new FPDF();
  $pdf->SetLeftMargin(10);
  $pdf->SetRightMargin(10);
  //$pdf->AddPage('P','mio');
   $pdf->AddPage();
  $pdf->SetFont('Arial','B',10);
  $pdf->Cell(175,10,'CERVEZERIA OTTRA',0,1,'C');
 
   $pdf->Cell(175,3,'VENTA DE CERVEZA ARTESANAL ',0,1,'C');
    $array=obtenerh($sesion);
 
    $hora=$array[0]['horainicio'];
    $pdf->Cell(175,5,'RESUMEN DE VENTAS Y ENTRADAS DE CAJA..  '.$fecha.' DESDE '.$hora.' HASTA '.date("H:i"). '',0,1,'C');
 
 $pdf->SetFont('courier','B',12);
 $pdf->Cell(30,5,"FECHA..:".$fecha,0,1,'L');
 $pdf->Cell(30,5,"CAJERO..:".$_POST['nombre'],0,1,'L');
 $pdf->SetFont('courier','B',12);
 
 $pdf->Cell(15,6,'Cant',1,0,"C");
 
 $pdf->Cell(90,6,utf8_decode('Descripción'),1,0,"C");
  $pdf->Cell(10,6,'P/U',1,0,0);
 $pdf->Cell(30,6,'Sub',1,0,"C");
$pdf->Cell(20,6,'Desc',1,0,"C");
 $pdf->Cell(20,6,'Total',1,0,"C");
 
 $pdf->ln(2);
 
   foreach($arraymov as $f=>$r){
 
   if ($r['granel']==1){
      if (isset($r['descu'])){
        $descuento=$r['descu'];
    }else{
        $descuento=0;
    }
      $cant=$r['3'];
    $descripcion=$r['nombre'] . "    ". $r['medida'];
    $pu=$r['4'];
   }else{
    if (isset($r['descu'])){
        $descuento=$r['descu'];
    }else{
        $descuento=0;
    }
      $cant=$r['5'];
    $descripcion=$r['nombre'] . "    ". $r['medida'];
    $pu=$r['4'];
   }
 
 
    $importe=$cant * $pu;
 
    $subtotal=$importe - $descuento;
    $total=$total+$subtotal;
 
 
        $pdf-> cell(15,12,$cant,0,0,'R');
        $y = $pdf->GetY();
        //$pdf-> cell(58,4,$descripcion,0,0,'R');
        $pdf-> Multicell(70,12,utf8_decode($descripcion),0,'L',0);
        //$pdf->SetY(40); /* Set 20 Eje Y */
 
$pdf->SetXY(60,$y);
 
 
        $pdf->cell(75,12,'$'.$pu,0,'C',0);
        $pdf->cell(20,12,'$'.$importe,0,'C',0);
        $pdf->cell(20,12,'$'.$descuento,0,'C',0);
         $pdf->cell(30,12,'$'.$subtotal,0,1,'C',0);
                      $yFin = $pdf->GetY();
 
 
  }
  $posicion=0;
 
  $pdf->AddPage();
  $pdf->SetFont('Arial','B',10);
  $pdf->Cell(175,10,'CERVEZERIA OTTRA',0,1,'C');
  $pdf->SetFont('Times','',7);
  $pdf->Cell(175,3,'VENTA DE CERVEZA ARTESANAL ',0,1,'C');
  $array=obtenerh($sesion);
 
  $hora=$array[0]['horainicio'];
   $pdf->Cell(175,5,'RESUMEN DE GASTOS DE CAJA..  '.$fecha.' DESDE '.$hora.' HASTA '.date("H:i"). '',0,1,'C');
 
  $pdf->SetFont('courier','B',12);
  $pdf->Cell(70,5,$fecha,0,1,'R');
 
  $pdf->SetFont('courier','B',12);
 
  $pdf->Cell(15,6,'Cant',1,0);
 
  $pdf->Cell(120,6,utf8_decode('Descripción'),1,0,"C");
  $pdf->Cell(20,6,'COSTO',1,0);
 
 $pdf->Cell(20,6,'Total',1,0);
 
$pdf->ln(2);
 
  $posicion=0;
 
 
  $totalg=0;
  var_dump($arraygastos);
 foreach($arraygastos as $g=>$gasto){
     $pdf-> cell(15,12,'1',0,0,'R');
        $y = $pdf->GetY();
        //$pdf-> cell(58,4,$descripcion,0,0,'R');
        $pdf-> Multicell(200,12,utf8_decode($gasto['detalle']),0,'L',0);
        //$pdf->SetY(40); /* Set 20 Eje Y */
   $pdf->SetY($yFin);
   $pdf->SetXY(60,$y);
 
 
        $pdf->cell(60,12,'$'.$gasto['monto'],0,'C',0);
 
         $pdf->cell(50,12,'$'.$gasto['monto'],0,1,'C',0);
                      $yFin = $pdf->GetY();
                      $totalg=$totalg + $gasto['monto'];
 
  }
  $pdf->ln(4);
  $pdf->Cell(76,6,'---------------------------',0,1);
  $pdf->Cell(76,6,'---------------------------',0,1);
  $pdf->ln(2);
  $pdf->SetFont('Arial','B',12);
  $pdf->Cell(50,6,'SubTotal Movimientos............ $'.$total,0,1);
  $pdf->Cell(50,6,'CAMBIO....................... $'.$cambio,0,1);
  $pdf->Cell(50,6,'GASTOS....................... $'.$totalg,0,1);
  $pdf->Cell(70,6,'Total........................ $'.($total - $cambio -
 $totalg),0,'L',1);
 //$pdf->Cell(76,1,'--------------------------------------------------',0,1);
 
$pdf->ln(10);
 
 $pdf->SetFont('Times','I',7);
 
$pdf->Output('ficha.pdf','I');
$pdf->Output();
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
Imágen de perfil de txema
Val: 79
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Abrir y Descargar pdf generado con FPDF

Publicado por txema (28 intervenciones) el 05/04/2019 19:56:57
Pregunto:
include_once ($_SERVER['DOCUMENT_ROOT'].'/models/claseCaja.php'); ¿qué copntiene?

Si yo, en un archivo que me genera perfectamente un PDF, inserto al inicio un echo "Hola Mundo"; o cualquier otro dato, me arroja exactamente el mismo error (en las mismas líneas de fpdf.php) que mostraste anteriormente.

Esto es, Ya se han enviado algunos datos, no se puede enviar el archivo PDF' en \,,,
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

Abrir y Descargar pdf generado con FPDF

Publicado por giuli (74 intervenciones) el 05/04/2019 20:15:28
Es que necesito claseCaja porque hay estan los metodos que llamo en las funciones de arriba, obtienen el detalle de ventas y gastos. Pero voy a probar imprimir vacio solo las columnas
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