Error al crear pdf con fpdp y php

Espero me puedan ayudar al usar el fpdf ya que estoy intentando usarlo en una página y me esta marcando errores.

Este es el código básico que estoy usando

require("fpdf/fpdf.php");
$pdf=new FPDF();
$pdf->AddPage();
$pdf->setFont('Arial','B',12);
$pdf->Cell(40,10,'Hola Mundo!');
$pdf->Output("D","Reporte.pdf");

Y el error que me esta enviando es el de

Error: Commands out of sync; you can't run this command now Fatal error: Uncaught exception 'Exception' with message 'FPDF error: Some data has already been output, can't send PDF file (output started at /storage/ssd3/216/2744216/public_html/pdf.php:13)' in /storage/ssd3/216/2744216/public_html/fpdf/fpdf.php:271 Stack trace: #0 /storage/ssd3/216/2744216/public_html/fpdf/fpdf.php(1052): FPDF->Error('Some data has a...') #1 /storage/ssd3/216/2744216/public_html/fpdf/fpdf.php(999): FPDF->_checkoutput() #2 /storage/ssd3/216/2744216/public_html/pdf.php(111): FPDF->Output('Reporte.pdf', 'I') #3 {main} thrown in /storage/ssd3/216/2744216/public_html/fpdf/fpdf.php on line 271

Ya probé con "I" o dejar el output vacío pero aun así me manda algún error.

Si requieren el código completo de toda la página me avisan.

Respuesta
1

Me parece que esta línea está mal

$pdf->Output("D","Reporte.pdf");

y debería ir

$pdf->Output('Reporte.pdf','D');

2 respuestas más de otros expertos

Respuesta
1

El error te esta diciendo que ya has mandado algo al cliente primero, ese es el problema. Mira lo que tengas antes, que no haya ningún echo ni nada, ni ningún error ni warning... y funcionara bien.

¡Gracias!
Ya logre que no me marque ningún error pero ahora no sale el archivo.
Pongo como quedo el código a ver que le encuentran.

¿

<?php
      // Dirección o IP del servidor MySQL
      $host = "localhost";
      // Nombre de usuario del servidor MySQL
      $usuario = "*****";
      // Contraseña del usuario
      $contrasena = "****";
      // Nombre de la base de datos
      $baseDeDatos ="*****";
      // Nombre de la tabla a trabajar
      $tabla = "****";
      function Conectarse()
      {
         global $host, $usuario, $contrasena, $baseDeDatos, $tabla;
         if (!($link = mysqli_connect($host, $usuario, $contrasena)))
         {
            echo "Error conectando a la base de datos.<br>";
            exit();
            }
         else
         {
            echo "Conectados.<br>";
         }
         if (!mysqli_select_db($link, $baseDeDatos))
         {
            echo "Error seleccionando la base de datos.<br>";
            exit();
         }
         else
         {
            echo "Obtuvimos la base de datos $baseDeDatos correctamente.<br>";
         }
      return $link;
      }
      $link = Conectarse();
$query = "SELECT * FROM ****";
if ($result = mysqli_query($link, "SELECT * FROM visita", MYSQLI_USE_RESULT)) {
}
require("fpdf/fpdf.php");
$pdf=new FPDF();
$pdf->AddPage();
$pdf->setFont('Arial','B',12);
    while($row=mysqli_fetch_row($result)){
        $data[]=array('Nombre'=>$row[0], 'Direccion'=>$row[1],'Telefono'=>$row[2],'EMail'=>$row[3]);
    }
    $titles=array('Nombre'=>'Nombre', 'Direccion'=>'Direccion','Telefono'=>'Telefono','EMail'=>'EMail');
$pdf->Cell(40,10,'Hola Mundo!');
$pdf->Output('Reporte.pdf','F');  // sale el archivo
mysqli_free_result($result);
mysqli_close($link);
?>

Respuesta
1

Agrega los parámetros 0,0 en esta línea

$pdf->Cell(40,10,'Hola Mundo!',0,0);

Considero que hacen falta esos dos parametros.

¡Gracias!
Me sirvió tu información pero aun me seguía marcando el mismo error,
lo solucione por pura casualidad, como antes de darle salida al pdf estaba enviando mensajes de echo pues le daba prioridad a esos.
Solo los elimine y jalo todo correctamente!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas