Sauts de colonne dans un doc pdf ...

Eléphanteau du PHP | 20 Messages

18 sept. 2008, 21:52

Bonjour, je cherche à instancier la fonction AcceptPageBreak() pour gérer un saut de colonne dans mes documents générés grace à fpdf je débute donc mon doc par le code suivant (code sans doute mal repompé d'un tuto), or il me sort l'erreur suivante :
Fatal error: Cannot redeclare class FPDF in C:\Program Files\EasyPHP 2.0b1\www\framboise\fpdf\fpdf.php on line 13
Comment devrais-je implémenter ce code ?

Mon code :
<?php
require('../fpdf/fpdf.php');

class PDF extends FPDF 
{
//Colonne courante :
var $col=0;
//Ordonnée du début des colonnes :
var $y0; 

function SetCol($col) 
	{
	//Positionnement sur une colonne 
	$this->col=$col; 
	$x=10+$col*65; 
	$this->SetLeftMargin($x); $this->SetX($x); 
	}
function AcceptPageBreak() 
	{
	 //Méthode autorisant ou non le saut de page automatique
	 if($this->col<2) 
		{
	 	//Passage à la colonne suivante
		$this->SetCol($this->col+1); 
		//Ordonnée en haut 
		$this->SetY($this->y0); 
		//On reste sur la page return false; 
		} 
	else 
		{
		//Retour en première colonne 
		$this->SetCol(0);
		//Saut de page 
		return true;
	 	}
 	} 
}
Je changerais bien de boite : marre d'Atos-Origin !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 sept. 2008, 22:18

Le message d'erreur t'indique que tu redéclares la classe fpdf...

ton script doit être inclus dans un autre qui fait déjà apppel à fpdf.php.

au lieu de require() ou include(), tu peux utiliser require_once() et include_once() si tu n'es pas sur que le fichier a déjà été inclu. Ceci étant, c'est un peu plus gourmand en ressources et mieux vaut savoir ce que l'on inclu et quand, pour éviter les doubles inclusions plutot que demander à php de rattrapper nos boulettes ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

18 sept. 2008, 22:21

Bonjour,

Ce message d'erreur veut dire que la classe FPDF a déjà été déclaré auparavant et que tu essayes de la déclarer une deuxième fois (ce qui n'est bien sûr pas possible).

Vérifies que tu n'inclues pas deux fois le fichier FPDF.php.
Si tu ne vois pas où, remplace ton require() par un require_once()


##edit: grillé par Ryle qui fait la même réponse en + !!! :wink:
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 20 Messages

18 sept. 2008, 22:51

OK, c'était bien çà : ça marche toujours pas pour le saut de colonnes mais au moins j'ai plus l'erreur, j'avais effectivement déclaré la classe 2 fois ... heurs et malheurs des copier-collés ...
Merci !
Je changerais bien de boite : marre d'Atos-Origin !