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.
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.
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();
?>
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
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.
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, pdf-generator.php
war UTF-8-codiert und wenn Sie Meldungen/Warnungen vor der Generierung von PDF) codeausgeben, versuchen Sie, diese auszuschalten. error_reporting(0)
. Bearbeiten Sie anschließend die Warnungen
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.
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 :-)
Erster Schritt Überprüfen Sie die Berechtigungen für die Ordner Zweiter Schritt Setzen Sie dies
ob_start();
vor der Linie
$pdf->Output();
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();
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();
?>