Erreur FPDF: certaines données ont déjà été sorties, ne peut pas envoyer de PDF
j'utilise le fpdf bibliothèque pour mon projet, et je l'utilise pour étendre un des modules drupal. Ces lignes
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
donnez-moi une erreur: FPDF error: Certaines données ont déjà été sortie, ne peut pas envoyer de PDF
j'ai essayé de créer ceci dans un fichier séparé en dehors du test drupal de nom de zone.php et quand vu il a fonctionné. Quelqu'un ici sait pourquoi ça ne marche pas? Ou n'importe qui ici peut me montrer une bibliothèque pdf droite que je peux utilisez drupal pour afficher le format HTML au format PDF.
11 réponses
pour que le fpdf fonctionne correctement, il ne peut pas y avoir pas de sortie du tout à côté de ce que fpdf génère. Par exemple, cela va fonctionner:
<?php
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>
alors que ce n'est pas le cas (notez l'espace de tête avant l'ouverture <?
la balise
<?php
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>
en outre, cela ne fonctionnera pas non plus (le echo
cassera):
<?php
echo "About to create pdf";
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>
Je ne suis pas sûr du côté drupal des choses, mais je sais qu'absolument zéro sortie non-fpdf est une exigence pour fpdf à travail.
donnez-moi une erreur comme ci-dessous:FPDF error: Some data has already been output, can't send PDF
pour plus de venir cette erreur:
accédez à fpdf.php
en cela,aller à la ligne numéro 996
function Output($name='', $dest='')
après cela faites des changements comme ceci:
function Output($name='', $dest='') {
ob_clean(); //Output PDF to so
ajouter ob_start ();
en haut et à la fin, ajouter 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();
?>
essayez de sauvegarder le fichier sans l'option "bom comment", c'est-à-dire dans Adobe Dreamweaver, vous sauvegardez le fichier sous...,décocher la case la case en dessous du nom du fichier qui dit,"Inclure signature Unicode(BOM)".
sur Notepad++ vous devez sélectionner le menu:Encodage, "Encoder en UTF-8 sans BOM".
et le rendre par défaut pour les autres fichiers que vous créez, il vous épargnera beaucoup de maux de tête à l'avenir.
Salut Vous avez un en-tête de session en haut de votre page. ou tout inclut Si vous avez alors essayez d'ajouter ce codes sur le dessus pf votre page fonctionne très bien.
<?
while (ob_get_level())
ob_end_clean();
header("Content-Encoding: None", true);
?>
santé: -)
le message D'erreur FPDF vous indiquera la ligne PHP qui envoie du contenu.
si vous n'avez pas d'indication sur le fichier et la ligne qui envoient du contenu, Vous avez probablement une inadéquation d'encodage dans vos fichiers include / require.
Pour moi
fpdf.php
a été ANSI-codé,- mon
pdf-generator.php
a été codé en UTF-8 et - ma base de données-connexion-inlude a été codé en UTF-8 (cet encodage UTF-8-a soulevé L'erreur FPDF. J'ai eu à commutateur de retour à la norme ANSI)
Dans mon cas, j'avais mis:
ini_set('display_errors', 'on');
error_reporting(E_ALL | E_STRICT);
lorsque j'ai fait la demande de générer le rapport, certains avertissements ont été affichés dans le navigateur (comme l'utilisation de fonctions obsolètes).
Tournant off
display_errors
option, le rapport a été généré avec succès.
Première étape vérifiez les autorisations sur les dossiers deuxième étape mettre cette
ob_start();
avant la ligne
$pdf->Output();
j'ai utilisé la commande suivante et il a travaillé pour moi
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();
Vous devez appeler la bibliothèque
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();
?>
si vous êtes sortie du code notices / warnings avant la génération PDF, essayez de les désactiver. error_reporting(0)
. Puis travaillez sur les Avertissements là-bas-après