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 30/04/2008, 16h13   #1
Invité de passage
 
Inscription : juillet 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 7
Points : 2
Points : 2
Par défaut Colonnes manquantes abec phpToPDF

Bonjour à tous,

J'ai le code suivant, plutôt basique :
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
 
<? include ('phpToPDF.php') ;
require_once('Connections/webservices.php'); 
 
mysql_select_db($database_webservices, $webservices);
$query_commune = "SELECT * FROM communes";
$commune = mysql_query($query_commune, $webservices) or die(mysql_error());
$row_commune = mysql_fetch_assoc($commune);
 
$PDF=new phpToPDF();
$PDF -> AddPage();
$PDF -> SetMargins (20,20) ;
$PDF -> startPageNums () ;
 
// Définition des propriétés du tableau.
$proprietesTableau = array(
    'TB_ALIGN' => 'L',
    'L_MARGIN' => 15,
    'BRD_COLOR' => array(0,92,177),
    'BRD_SIZE' => '0.3',
 
 
// Définition des propriétés du reste du contenu du tableau.    
$proprieteContenu = array(
    'T_COLOR' => array(0,0,0),
    'T_SIZE' => 10,
    'T_FONT' => 'Arial',
    'T_ALIGN_COL0' => 'L',
    'T_ALIGN' => 'R',
    'V_ALIGN' => 'M',
    'T_TYPE' => '',
    'LN_SIZE' => 6,
    'BG_COLOR_COL0' => array(245, 245, 150),
    'BG_COLOR' => array(255,255,255),
    'BRD_COLOR' => array(0,92,177),
    'BRD_SIZE' => 0.1,
    'BRD_TYPE' => '1',
    'BRD_TYPE_NEW_PAGE' => '',)
 
// Définition des propriétés du header du tableau.    
$proprieteHeader = array(
    'T_COLOR' => array(150,10,10),
    'T_SIZE' => 12,
    'T_FONT' => 'Arial',
    'T_ALIGN' => 'C',
    'V_ALIGN' => 'T',
    'T_TYPE' => 'B',
    'LN_SIZE' => 7,
    'BG_COLOR_COL0' => array(170, 240, 230),
    'BG_COLOR' => array(170, 240, 230),
    'BRD_COLOR' => array(0,92,177),
    'BRD_SIZE' => 0.2,
    'BRD_TYPE' => '1',
    'BRD_TYPE_NEW_PAGE' => '',)
 
// Contenu du header du tableau.    
$contenuHeader = array("Code postal","Nom");
$contenuTableau = array() ;
 
do {
    array_push($contenuTableau, $row_commune['code_postal'],$row_commune['nom']);
    } while($row_commune = mysql_fetch_assoc($commune)) ;
 
//     ------------------------------
//     Ecriture d'un tableau
//     ------------------------------
 
//    print_r ($contenuTableau) ;
//    echo '<BR><BR>' ;
 
    $PDF->drawTableau($PDF, $proprietesTableau, $proprieteHeader, $contenuHeader, $proprieteContenu, $contenuTableau);
 
    mysql_close();
    $PDF->Output();
?>
Si j'affiche le tableau avec print_r() ou dans une page HTML toute bête, c'est correct.
Malheureusement, en PDF, j'ai un tableau avec une seule colonne (entête nom), et tout le reste s'affiche "à la ligne", genre :

NOM
97233
SCHOELCHER
97231
LE ROBERT..

au lieu de

Code postal Nom
97233 SCHOELCHER
97231 LE ROBERT

J'ai le même résultat si je fais :
Code :
1
2
3
4
5
6
7
8
9
10
 
// Contenu du header du tableau.    
$contenuHeader = array(
        "Nous", "Eux",
    );
 
$contenuTableau = array(
    "Titine", 'Tonton', 
    "Charlie", "Charlot"
    );
J'ai une seule colonne EUX avec toutes les données en dessous.
Mais si je fais :
Code :
1
2
3
4
5
6
7
8
9
 
$contenuHeader = array(50,50,50
		"Nous", "Eux",
	);
 
$contenuTableau = array(
	"Titine", 'Tonton', 
	"Charlie", "Charlot"
	);
j'ai une erreur undefined offset.
J'utilise mal contenuHeader ???
Je suis perplexe...
Merci de m'éclairer !
Niele est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 22h24   #2
Membre du Club
 
Inscription : janvier 2008
Messages : 60
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 60
Points : 59
Points : 59
Bonsoir, je ne suis pas un "pro" mais voici comment je ferais :

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<? include ('phpToPDF.php') ;
require_once('Connections/webservices.php'); 
 
mysql_select_db($database_webservices, $webservices);
$query_commune = "SELECT * FROM communes";
$commune = mysql_query($query_commune, $webservices) or die(mysql_error());
//$row_commune = mysql_fetch_assoc($commune);
$nbcommunes = mysql_num_rows($commune);
 
$PDF=new phpToPDF();
$PDF -> AddPage();
$PDF -> SetMargins (20,20) ;
$PDF -> startPageNums () ;
 
// Définition des propriétés du tableau.
$proprietesTableau = array(
    'TB_ALIGN' => 'L',
    'L_MARGIN' => 15,
    'BRD_COLOR' => array(0,92,177),
    'BRD_SIZE' => '0.3',
 
 
// Définition des propriétés du reste du contenu du tableau.    
$proprieteContenu = array(
    'T_COLOR' => array(0,0,0),
    'T_SIZE' => 10,
    'T_FONT' => 'Arial',
    'T_ALIGN_COL0' => 'L',
    'T_ALIGN' => 'R',
    'V_ALIGN' => 'M',
    'T_TYPE' => '',
    'LN_SIZE' => 6,
    'BG_COLOR_COL0' => array(245, 245, 150),
    'BG_COLOR' => array(255,255,255),
    'BRD_COLOR' => array(0,92,177),
    'BRD_SIZE' => 0.1,
    'BRD_TYPE' => '1',
    'BRD_TYPE_NEW_PAGE' => '',)
 
// Définition des propriétés du header du tableau.    
$proprieteHeader = array(
    'T_COLOR' => array(150,10,10),
    'T_SIZE' => 12,
    'T_FONT' => 'Arial',
    'T_ALIGN' => 'C',
    'V_ALIGN' => 'T',
    'T_TYPE' => 'B',
    'LN_SIZE' => 7,
    'BG_COLOR_COL0' => array(170, 240, 230),
    'BG_COLOR' => array(170, 240, 230),
    'BRD_COLOR' => array(0,92,177),
    'BRD_SIZE' => 0.2,
    'BRD_TYPE' => '1',
    'BRD_TYPE_NEW_PAGE' => '',)
 
// Contenu du header du tableau.    
$contenuHeader = array() ;
$contenuHeader[] = "Code postal";
$contenuHeader[] = "Nom";
 
$contenuTableau = array() ;
 
/*do {
    array_push($contenuTableau, $row_commune['code_postal'],$row_commune['nom']);
    } while($row_commune = mysql_fetch_assoc($commune)) ;
*/
    for ( $n=0; $n<$nbcommunes; $n++ )
    {
        $ligne=mysql_fetch_object($commune);
        $code_postal=$ligne->code_postal;
        $nom=$ligne->nom;
        $contenuTableau[]=$code_postal;
        $contenuTableau[]=$nom;
    }
 
//     ------------------------------
//     Ecriture d'un tableau
//     ------------------------------
 
//    print_r ($contenuTableau) ;
//    echo '<BR><BR>' ;
 
    $PDF->drawTableau($PDF, $proprietesTableau, $proprieteHeader, $contenuHeader, $proprieteContenu, $contenuTableau);
 
    mysql_close();
    $PDF->Output();
?>
Peut-être pas très élégant mais ça devrait marcher.
Le_Moustachu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 02h54   #3
Invité de passage
 
Inscription : juillet 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 7
Points : 2
Points : 2
Par défaut Trois fois hélas...

de m'avoir répondu

C'était bien essayé, mais ça donne exactement le même résultat : une colonne NOM, puis empilé dessous codes postaux et noms de commune (soupir... )
Avant de poster, j'ai essayé tous les trucs de remplissage de tableaux que je connaissais. J'y ai passé une nuit, je fatigue.

Je persiste à penser que c'est quelque chose dans la déclaration de l'entête du tableau qui décale tout.

Le créateur du script n'est pas dans les parages ? Y'a pas tellement de littérature sur phpToPDF sur le Net.
Niele est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 08h38   #4
Membre du Club
 
Inscription : janvier 2008
Messages : 60
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 60
Points : 59
Points : 59
Bonjour,

Je pense avoir trouvé, tu n'as pas défini la taille de tes cellules d'en-tête, essaie ça
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<? include ('phpToPDF.php') ;
require_once('Connections/webservices.php'); 
 
mysql_select_db($database_webservices, $webservices);
$query_commune = "SELECT * FROM communes";
$commune = mysql_query($query_commune, $webservices) or die(mysql_error());
//$row_commune = mysql_fetch_assoc($commune);
$nbcommunes = mysql_num_rows($commune);
 
$PDF=new phpToPDF();
$PDF -> AddPage();
$PDF -> SetMargins (20,20) ;
$PDF -> startPageNums () ;
 
// Définition des propriétés du tableau.
$proprietesTableau = array(
    'TB_ALIGN' => 'L',
    'L_MARGIN' => 15,
    'BRD_COLOR' => array(0,92,177),
    'BRD_SIZE' => '0.3',);
 
 
// Définition des propriétés du reste du contenu du tableau.    
$proprieteContenu = array(
    'T_COLOR' => array(0,0,0),
    'T_SIZE' => 10,
    'T_FONT' => 'Arial',
    'T_ALIGN_COL0' => 'L',
    'T_ALIGN' => 'R',
    'V_ALIGN' => 'M',
    'T_TYPE' => '',
    'LN_SIZE' => 6,
    'BG_COLOR_COL0' => array(245, 245, 150),
    'BG_COLOR' => array(255,255,255),
    'BRD_COLOR' => array(0,92,177),
    'BRD_SIZE' => 0.1,
    'BRD_TYPE' => '1',
    'BRD_TYPE_NEW_PAGE' => '',);
 
// Définition des propriétés du header du tableau.    
$proprieteHeader = array(
    'T_COLOR' => array(150,10,10),
    'T_SIZE' => 12,
    'T_FONT' => 'Arial',
    'T_ALIGN' => 'C',
    'V_ALIGN' => 'T',
    'T_TYPE' => 'B',
    'LN_SIZE' => 7,
    'BG_COLOR_COL0' => array(170, 240, 230),
    'BG_COLOR' => array(170, 240, 230),
    'BRD_COLOR' => array(0,92,177),
    'BRD_SIZE' => 0.2,
    'BRD_TYPE' => '1',
    'BRD_TYPE_NEW_PAGE' => '',);
 
// Contenu du header du tableau.    
$contenuHeader = array() ;
$contenuHeader[] = 25;
$contenuHeader[] = 50;
$contenuHeader[] = "Code postal";
$contenuHeader[] = "Nom";
 
$contenuTableau = array() ;
/* 
do {
    array_push($contenuTableau, $row_commune['code_postal'],$row_commune['nom']);
    } while($row_commune = mysql_fetch_assoc($commune)) ;
*/
    for ( $n=0; $n<$nbcommunes; $n++ )
    {
        $ligne=mysql_fetch_object($commune);
        $code_postal=$ligne->code_postal;
        $nom=$ligne->nom;
        $contenuTableau[]=$code_postal;
        $contenuTableau[]=$nom;
    }
 
//     ------------------------------
//     Ecriture d'un tableau
//     ------------------------------
 
//    print_r ($contenuTableau) ;
//    echo '<BR><BR>' ;
 
    $PDF->drawTableau($PDF, $proprietesTableau, $proprieteHeader, $contenuHeader, $proprieteContenu, $contenuTableau);
 
    mysql_close();
    $PDF->Output();?>
Bon courage pour la suite !...
Pour avoir fait des tableaux très complexes à partir d'un BDD, je peux te dire que phpToPDF est performant. Avec le rowspan en plus ce serait super !
Le_Moustachu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 15h11   #5
Invité de passage
 
Inscription : juillet 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 7
Points : 2
Points : 2
Par défaut Right



Merci. Bonne continuation.
Niele 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 00h06.


 
 
 
 
Partenaires

Hébergement Web