it-swarm.com.de

FPDF-Fehler: Einige Daten wurden bereits ausgegeben, können nicht gesendet werden PDF

Ich verwende die fpdf - Bibliothek für mein Projekt und erweitere damit eines der Drupal-Module. Diese Zeilen

$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();

gib mir einen Fehler:FPDF-Fehler: Einige Daten wurden bereits ausgegeben, können nicht gesendet werden PDF

Ich habe versucht, dies in einer separaten Datei außerhalb des Drupal-Bereichs namens test.php zu erstellen, und als ich es sah, funktionierte es. Weiß hier jemand, warum das nicht funktioniert? Oder jeder hier kann mir eine richtige PDF-Bibliothek zeigen, die ich in Drupal verwenden kann, um HTML im Format PDF anzuzeigen.

21
Wondering Coder

Damit fpdf richtig funktioniert, kann es keine keine Ausgabe geben, außer was fpdf generiert. Zum Beispiel wird dies funktionieren:

<?php
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>

Dies wird nicht der Fall sein (beachten Sie das führende Leerzeichen vor dem <?-Tag)

 <?php
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>

Auch dies wird nicht funktionieren (die echo wird es kaputt machen):

<?php
echo "About to create pdf";
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>

Ich bin mir nicht sicher, was die Drupal-Seite angeht, aber ich weiß, dass absolut keine Nicht-Fpdf-Ausgabe erforderlich ist, damit fpdf funktioniert.

38
Gordon Bailey

addiere ob_start (); oben und füge am Ende ob_end_flush(); hinzu

<?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(); 
?>
17
Behlum Noman

gib mir einen Fehler wie folgt:
FPDF error: Some data has already been output, can't send PDF 

um diesen Fehler zu beheben, gehen Sie folgendermaßen vor: Gehen Sie zu fpdf.php in der goto Zeilennummer 996 

function Output($name='', $dest='')

danach Änderungen wie folgt vornehmen: 

function Output($name='', $dest='') {   
    ob_clean();     //Output PDF to so
17
raghavendra

Versuchen Sie, die Datei ohne die Option "Stücklistenkommentar" zu speichern, dh in Adobe Dreamweaver speichern Sie die Datei unter ..., Deaktivieren das Kästchen unter dem Dateinamen mit der Aufschrift " Unicode-Signatur (BOM) einschließen ".

Auf Notepad ++ sollten Sie das Menü auswählen: Encoding, " In UTF-8 ohne Stückliste codieren ".

Wenn Sie die Standardeinstellung für andere von Ihnen erstellte Dateien festlegen, ersparen Sie sich in Zukunft viele Kopfschmerzen.

4
Andrey Aires

Die FPDF-Fehlermeldung zeigt Sie auf die Zeile PHP, die Inhalte sendet.

Wenn Sie keinen Hinweis darauf erhalten, was File & Line Inhalte sendet, haben Sie möglicherweise eine falsche Codierung in den Include/Required-Dateien. 

Für mich 

  • fpdf.php wurde ANSI-codiert, 
  • mein pdf-generator.php war UTF-8-codiert und 
  • mein Datenbankverbindungs-Inlude war UTF-8-codiert (Diese UTF-8-Codierung hat den FPDF-Fehler ausgelöst. Ich musste ihn wieder auf ANSI umstellen)
2
HansWurst

wenn Sie Meldungen/Warnungen vor der Generierung von PDF) codeausgeben, versuchen Sie, diese auszuschalten. error_reporting(0). Bearbeiten Sie anschließend die Warnungen

2
Cliff Ombachi

In meinem Fall hatte ich eingestellt:

ini_set('display_errors', 'on');
error_reporting(E_ALL | E_STRICT);

Bei der Anforderung zur Erstellung des Berichts wurden im Browser einige Warnungen angezeigt (z. B. die Verwendung veralteter Funktionen).
Durch die off-Option display_errors wurde der Bericht erfolgreich generiert.

2
Victor

Hallo, Sie haben oben auf Ihrer Seite einen Sitzungsheader ... oder einen Include Wenn Sie dann versuchen, diese Codes oben auf Ihrer Seite hinzuzufügen, sollte dies problemlos funktionieren. 

<?

while (ob_get_level())
ob_end_clean();
header("Content-Encoding: None", true);

?>

prost :-)

2
Cino Jose

Erster Schritt Überprüfen Sie die Berechtigungen für die Ordner Zweiter Schritt Setzen Sie dies 

ob_start(); 

vor der Linie 

$pdf->Output();
1

Ich habe folgendes benutzt und es hat für mich funktioniert 

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();
1
Wasim Khan

Sie müssen die Bibliothek aufrufen

erfordern ('fpdf.php');

<?php
require('fpdf.php');

$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'¡Hola, Mundo!');
$pdf->Output();
?>

http://www.fpdf.org/

http://www.fpdf.org/es/tutorial/tuto1.htm

0
Proyecto Pi