Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PDF > phpToPDF
phpToPDF Forum d'entraide pour la classe phpToPDF permettant de générer des documents PDF en PHP. Avant de poster -> tutoriels EZPDF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/10/2007, 14h34   #1
Invité de passage
 
Inscription : octobre 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 9
Points : 2
Points : 2
Par défaut [phpToPDF] Headers et footers ne s'affichent pas

Bonjour,
j'ai vu que la question a été évoquée plusieurs fois dans ce forum, mais aucune des solutions données ne convient pour mon cas

J'ai donc un problème avec mon header et mon footer qui ne s'affichent pas sur mes pages.
j'ai repris les exemples des tutos et voila ce que j'ai dans mon script:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
// -------------
include("phpToPDF.php");
 
class PDF extends FPDF
{
//En-tête
function Header()
{
    //Police Arial gras 15
    $this->SetFont('Arial','B',15);
    //Décalage à droite
    $this->Cell(80);
    //Titre
    $this->Cell(50,10,'DOSSIERS',1,0,'C');
    //Saut de ligne
    $this->Ln(20);
}
 
//Pied de page
 
function Footer() {
		//Go to 1.5 cm from bottom
		$this->SetY(-15);
		//Select Arial italic 8
		$this->SetFont('Arial','I',8);
//		$this->Cell(0,7,$this->numPageNo(),0,0,'C'); 
		$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
	}
---- suit mon script de gestion de mes datas à mettre dans la page (ça, ça marche très bien!):
Code :
1
2
3
4
5
6
7
8
9
 
$PDF = new phpToPDF('P','mm','A4');
$PDF->AddPage();
//Sélection de la police
$PDF->SetFont('Arial','B',10);
$PDF->Cell(0,10,$nom,1,1,'C');
$PDF->Cell(170,10,' ',0,1,'L'); 
$PDF->SetFont('Arial','',10);
$PDF->MultiCell(0,5,"Team Manager: ".$manager."\nProject Manager: ".$cdp,1,1,'L');
..... etc...

Puis la ligne de fin du PDF:


Le résultat done une page impec pour les données (aucun message d'erreur pendant le traitement), mais aucun titre en haut ni N° en bas de page

Qu'ai-je fait de mal ???
patrickzfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 14h43   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Ce que tu as fait dans ton code là c'est étendre la classe FPDF pour créer ta propre classe PDF qui crée un header et un footer
mais dans ton code tu fais ca
Code :
$PDF = new phpToPDF('P','mm','A4');
donc tu crées une instance de la classe phpToPDF qui, elle, ne doit pas avoir de surcharge des méthodes header() et footer()

il faut que tu fasses hériter ta classe PDF de PhpToPDF plutot et que tu fasses
Code :
$PDF = new PDF('P','mm','A4');
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 15h06   #3
Invité de passage
 
Inscription : octobre 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 9
Points : 2
Points : 2
Effectivement, tu as raison. Je viens de remplacer
$PDF = new phpToPDF('P','mm','A4');
par
$PDF = new PDF('P','mm','A4');

et j'ai bien mon titre et mon footer!

Merci! ça n'est pas évident tout ça! le tuto est faux alors ??! je n'ai fait qu'un copier/coller!

Par contre, mon document me donne en footer " Page 1/{nb} "

Elle sort d'où cette variable nb qu'on utilise dans la ligne du footer:
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');

Je comprends bien que c'est le nombre total des pages du document, mais comment la calcule t'on?

Vraiment pas simple
Une petite suggestion: Je pense qu'il manque un tutorial de base avec un petit exemple de code montrant la façon de mettre un titre, du texte et des variables dans la page, et un footer... avec le total des pages!

A partir de ce petit exemple complet tout bête, on peut adapter n'importe quoi derrière. Les exemples actuels sont interressants mais ne regroupent pas en un seul script ce que je viens de décrire...

Ce serait tout bête à faire pour ceux qui maitrisent parfaitement l'application et d'un très grand secours pour les nioubizz qui ne maitrisent pas forcément la philosophie d'utilisation de cet excellent PhpToPdf
patrickzfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 15h21   #4
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Code :
1
2
$PDF = new phpToPDF('P','mm','A4');
$PDF->AliasNbPages();
La deuxieme ligne sert a dire "remplace {nb} par le bon nombre de pages" ou un truc de ce genre. En gros, tu dois l'appeler apres la création de ton PDF pour l'initialiser correctement
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 15h56   #5
Membre expérimenté
 
Avatar de jc_cornic
 
Inscription : octobre 2006
Messages : 624
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : octobre 2006
Messages : 624
Points : 588
Points : 588
Envoyer un message via MSN à jc_cornic
Salut, sinon, pour le header et le footer, rien ne t'empeches de les ajouter à la classe phpToPDF pour les surcharger dans ta classe dérivée

++
JC
__________________
VELOMASTER, idée cadeau ? un jeu de plateau

Hummmmm, des donuts !!!!

Merci de penser à , et et aussi
jc_cornic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 19h09   #6
Invité de passage
 
Inscription : octobre 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 9
Points : 2
Points : 2
Je n'y comprends plus rien!

Tu me dis de mettre
$PDF = new phpToPDF('P','mm','A4');
$PDF->AliasNbPages();

alors que tu m'as fait changer mon
$PDF = new phpToPDF('P','mm','A4');
en
$PDF = new PDF('P','mm','A4');


.... et je ne vois pas bien la relation entre AliasNbPages et {nb}...

Je pense ne pas être trop neuneu en php mais là, j'avoue que je décroche
patrickzfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 22h32   #7
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
oui bah j'ai fait une erreur en copiant/collant

En résumé, il faut utiliser la fonction AliasNbPages() apres avoir créé ton pdf (new PDF(), new FPDF() ou quoi que ce soit). Cette méthode permet a FPDF (la classe de base) de mémoriser le nombre de pages au fur et a mesure que tu en crées (par AddPage()) et donc a la fin, quand il va générer ton PDF il remplacera {nb} par le bon nombre total de pages. {nb} etant dans
Code :
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 23h19   #8
Invité de passage
 
Inscription : octobre 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 9
Points : 2
Points : 2
Ok merci pour les explications

C'est bon, tout baigne!

Je commence à maitriser la bête et je me suis lancé dans les couleurs de fond et de caractères.
Ca fonctionne bien pour les Cell, par contre, pour les MultiCell, j'ai bien mes caractères dans la couleur que je veux, mais le fond reste blanc alors que pour les Cell, j'ai bien ma couleur de fond... pourtant le mets bien le dernier paramètre à 1 comme pour les Cell..
Bizarre..

$PDF->SetFillColor(237, 238, 239); // ---- Gris clair
$PDF->SetTextColor(0, 64, 128); // --- Bleu foncé
$PDF->Cell(0,8,'Tasks',0,1,'C',1); // c'est ok: caractères bleus et fond gris
$PDF->MultiCell(0,5,$a,1,1,'L',1); // c'est ko: caractères bleus mais fond BLANC
patrickzfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 12h53   #9
Membre expérimenté
 
Avatar de jc_cornic
 
Inscription : octobre 2006
Messages : 624
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : octobre 2006
Messages : 624
Points : 588
Points : 588
Envoyer un message via MSN à jc_cornic
Bonjour, désolé de te répondre si tard mais je viens de te lire et tu as mis un paramètre de trop à la méthode MultiCell...

Tu devrais faire:

Code :
1
2
3
4
5
$PDF->SetFillColor(237, 238, 239); // ---- Gris clair
$PDF->SetTextColor(0, 64, 128); // --- Bleu foncé
$PDF->Cell(0,8,'Tasks',0,1,'C',1); // c'est ok: caractères bleus et fond gris
$PDF->MultiCell(0,5,$a,1,'L',1); // ce sera OK
Espérant t'avoir aidé (pas trop tard)

++
JC
__________________
VELOMASTER, idée cadeau ? un jeu de plateau

Hummmmm, des donuts !!!!

Merci de penser à , et et aussi
jc_cornic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 13h33   #10
Invité de passage
 
Inscription : octobre 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 9
Points : 2
Points : 2
Merci pour l'info!

Je n'avais pas résolu le pb et je me suis contenté jusqu'à maintenant d'un fond blanc qui ne me gêne pas trop

Mais je vais quand même faire la modif pour voir l'effet produit!
patrickzfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h29.


 
 
 
 
Partenaires

Hébergement Web