J'utilise la bibliothèque fpdf pour mon projet, et je l'utilise pour étendre l'un des modules de 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: erreur FPDF: certaines données ont déjà été sorties, impossible d'envoyer PDF
J'ai essayé de créer cela dans un fichier séparé en dehors du nom de zone de la drupal test.php et lorsque visualisé, cela fonctionnait. Quelqu'un ici sait pourquoi cela ne fonctionne pas? Ou n'importe qui ici peut me proposer une bibliothèque de pdf que je peux utiliser dans Drupal pour afficher le format HTML au format PDF.
Pour que fpdf fonctionne correctement, il ne doit pas y avoir de sortie any à côté de ce que fpdf génère. Par exemple, cela fonctionnera:
<?php
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>
Cela ne sera pas le cas (notez l’espace devant la balise <?
d’ouverture)
<?php
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>
De plus, cela ne fonctionnera pas non plus (la echo
le 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’une sortie absolument non-fpdf est une exigence pour que fpdf fonctionne.
ajoutez ob_start ();
en haut et à la fin ajoutez 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();
?>
donnez-moi une erreur comme ci-dessous:FPDF error: Some data has already been output, can't send PDF
pour surmonter cette erreur: passez à fpdf.php
dans cela, allez à la ligne numéro 996
function Output($name='', $dest='')
après cela, faites les changements comme ceci:
function Output($name='', $dest='') {
ob_clean(); //Output PDF to so
Essayez de sauvegarder le fichier sans l'option: "Commentaire de la nomenclature", c'est-à-dire que dans Adobe Dreamweaver, vous enregistrez le fichier sous ..., décochez la case la case située sous le nom du fichier indiquant "Inclure la signature Unicode (BOM) ".
Sur le Bloc-notes ++, vous devez sélectionner le menu: Encodage , "Encoder en UTF-8 sans BOM".
Et faites-le par défaut pour les autres fichiers que vous créez, cela vous évitera beaucoup de maux de tête à l'avenir.
Le message d'erreur FPDF vous indiquera la ligne PHP qui envoie du contenu.
Si vous ne savez pas quel fichier & Line envoie du contenu, il existe probablement une différence d'encodage dans vos fichiers include/require.
Pour moi
fpdf.php
était encodé en ANSI, pdf-generator.php
était codé en UTF-8 et Dans mon cas j'avais mis:
ini_set('display_errors', 'on');
error_reporting(E_ALL | E_STRICT);
Lorsque j'ai fait la demande pour générer le rapport, certains avertissements étaient affichés dans le navigateur (comme l'utilisation de fonctions obsolètes).
En tournant off
l'option display_errors
, le rapport a été généré avec succès.
Bonjour, avez-vous un en-tête de session en haut de votre page ... ou tout autre fichier inclus. Si vous essayez ensuite d’ajouter ces codes en haut de votre page, cela devrait fonctionner correctement
<?
while (ob_get_level())
ob_end_clean();
header("Content-Encoding: None", true);
?>
à votre santé :-)
Première étape Vérifier les autorisations sur les dossiers Deuxième étape Mettre ceci
ob_start();
avant la ligne
$pdf->Output();
J'ai utilisé ce qui suit et cela a fonctionné 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();
si vous êtes un code qui émet des avis/avertissements avant la génération PDF, essayez de les désactiver. error_reporting(0)
. Ensuite, travaillez sur les avertissements qui suivent
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();
?>