php - servidor - plantillas fpdf
Error de FPDF: algunos datos ya se han generado, no se puede enviar PDF (11)
Estoy usando la biblioteca fpdf para mi proyecto, y estoy usando esto para extender uno de los módulos de drupal. Estas líneas
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont(''Arial'',''B'',16);
$pdf->Cell(40,10,''Hello World!'');
$pdf->Output();
Dame un error: error FPDF: algunos datos ya se han emitido, no se puede enviar PDF
Intenté crear esto en un archivo separado fuera del nombre de la zona drupal test.php y cuando lo vi funcionó. ¿Alguien aquí sabe por qué esto no funciona? O cualquiera aquí puede indicarme una biblioteca pdf correcta que puedo usar en drupal para ver el formato HTML a PDF.
Hola, tienes un encabezado de sesión en la parte superior de tu página. o cualquiera incluye Si tiene entonces intente agregar estos códigos en la parte superior de su página, debería funcionar bien.
<?
while (ob_get_level())
ob_end_clean();
header("Content-Encoding: None", true);
?>
aplausos :-)
Para que fpdf funcione correctamente, no puede haber ningún resultado al lado de lo que genera fpdf. Por ejemplo, esto funcionará:
<?php
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont(''Arial'',''B'',16);
$pdf->Cell(40,10,''Hello World!'');
$pdf->Output();
?>
Si bien esto no será (tenga en cuenta el espacio inicial antes de la apertura <?
Etiqueta)
<?php
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont(''Arial'',''B'',16);
$pdf->Cell(40,10,''Hello World!'');
$pdf->Output();
?>
Además, esto tampoco funcionará (el echo
lo romperá):
<?php
echo "About to create pdf";
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont(''Arial'',''B'',16);
$pdf->Cell(40,10,''Hello World!'');
$pdf->Output();
?>
No estoy seguro del lado drupal de las cosas, pero sé que absolutamente cero salida no-fpdf es un requisito para que fpdf funcione.
El mensaje de error FPDF lo dirigirá a la línea PHP que está enviando contenido.
Si no obtiene ninguna pista de qué File & Line envía algún contenido, es probable que tenga una falta de coincidencia de codificación en sus archivos include / require.
Para mi
-
fpdf.php
tenía codificación ANSI, - mi
pdf-generator.php
estaba codificado en UTF-8 y - mi base de datos-connect-inlude estaba codificada en UTF-8 (esta codificación UTF-8 levantó el error FPDF. Tuve que volver a ANSI)
Intente guardar el archivo sin la opción: "Comentario BOM", es decir, en Adobe Dreamweaver, Guardar archivo como ..., desmarque la casilla debajo del nombre de archivo que dice " Incluir firma Unicode (BOM) ".
En Notepad ++ debe seleccionar el menú: Codificación , " Codificar en UTF-8 sin BOM ".
Y hazlo predeterminado para otros archivos que crees, te ahorrará muchos dolores de cabeza en el futuro.
dame un error como a continuación:
FPDF error: Some data has already been output, can''t send PDF
para superar este error: ve a fpdf.php
en eso, pasa al número de línea 996
function Output($name='''', $dest='''')
después de eso, haga cambios como este:
function Output($name='''', $dest='''') {
ob_clean(); //Output PDF to so
En mi caso, yo había establecido:
ini_set(''display_errors'', ''on'');
error_reporting(E_ALL | E_STRICT);
Cuando hice la solicitud para generar el informe, se mostraron algunas advertencias en el navegador (como el uso de funciones en desuso).
off
la opción display_errors
, el informe fue generado con éxito.
Debes llamar a la biblioteca
require (''fpdf.php'');
<?php
require(''fpdf.php'');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont(''Arial'',''B'',16);
$pdf->Cell(40,10,''¡Hola, Mundo!'');
$pdf->Output();
?>
agregar ob_start ();
en la parte superior y al final, agregue ob_end_flush();
<?php
ob_start();
require(''fpdf.php'');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont(''Arial'',''B'',16);
$pdf->Cell(40,10,''Hello World!'');
$pdf->Output();
ob_end_flush();
?>
Primer paso comprueba los permisos en el segundo paso de las carpetas pon esto
ob_start();
antes de la línea
$pdf->Output();
si tiene avisos o avisos de salidas de código antes de la generación de PDF, intente apagarlos. error_reporting(0)
. Luego trabaja en las advertencias allí después
Usé lo siguiente y funcionó para mí
require_once (''pdf/fpdf.php'');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont(''Arial'',''B'',16);
$pdf->Cell(40,10,''Hello World!'');
$pdf->Output(F,''/var/www/html/PATH/filename.pdf'');
ob_end_flush();