PHP-Introduction à la génération de graphiques, fichiers Excel et PDF



Documents pareils
Dans l'article précédent, vous avez appris

Note de cours. Introduction à Excel 2007

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE MINISTERE DE LA FORMATION PROFESSIONNELLE. Microsoft. Excel XP

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Bernard Lecomte. Débuter avec HTML

Débuter avec Excel. Excel

Licence de Biologie, 1ère année. Aide. [Aide 1] Comment utiliser l'explorateur Windows? Comment créer des dossiers?

MAILING KOMPOZER... 2 CREEZ UNE PAGE... 2 FORMAT DE LA PAGE... 2 AJOUTER DU TEXTE SUR UNE PAGE... 4

Support Web Administration et gestion des portails web des facultés - Université A.Mira Béjaia -

Utilisation de l éditeur.

Infolettre #18 : Les graphiques avec Excel 2010

< Atelier 1 /> Démarrer une application web

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

Formation HTML / CSS. ar dionoea

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

Évaluation des compétences. Identification du contenu des évaluations. Septembre 2014

Gestion Électronique de Documents et XML. Master 2 TSM

Formation tableur niveau 1 (Excel 2013)

Parcours FOAD Formation EXCEL 2010

Suivi de la formation

CATALOGUE Parcours de Formations E-Learning BILAN FORMATION STAGE. e-learning

Initiation à html et à la création d'un site web

Seniors/Niveau 2. Connaissances préalables requises. Pour accéder au niveau 2, il faut être capable de:


HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

KompoZer. Composition du site : _ une page d'accueil : index.html. _ une page pour la théorie : theorie.html. _ une page pour les photos : photos.

Programme d Accès Communautaire / Atelier 4 Initiation à Microsoft Excel PLAN DE COURS 3 MICROSOFT EXCEL 4 LANCER EXCEL 4

GUIDE Excel (version débutante) Version 2013

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Manuel d'utilisation de l'administration du site Japo.ch - 1

Support de formation Notebook

Vous venez d acquérir un fichier de données issues de la Base de données SIRENE. Comment utiliser votre fichier?

Manuel de mise en page de l intérieur de votre ouvrage

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

Cours pratique Excel. Dans chacune des feuilles, les donnés sont déjà entrées afin de gagner du temps.

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

Alain DI MAGGIO Mise à jour sur le site 11/01/10

2 LES BASES DU HTML 19 Qu est-ce que le HTML? 20 De quand date le HTML? 20 Écrire son propre code HTML 22

Importer un fichier CSV

COURS DE MS EXCEL 2010

Numbers sur ipad. Atelier Formation Numbers sur ipad. [Notes extraitres de l'aide en ligne]

GUIDE D UTILISATION DU BACKOFFICE

Les bases de données. Se familiariser avec Base. Figure 1.1A Ouvre le fichier dont tu as besoin. Lance OpenOffice Base.

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

AC PRO SEN TR «services TCP/IP : WEB»

Construction d un Site Internet Dynamique avec Joomla René-Yves Hervé, Ph.D.

Normes techniques 2011

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version /11/05

Programme détaillé. LES TABLEAUX DE BORD Formation en présentiel (21 h) accompagnée d un parcours e-learning Excel (5 h)

Université Ibn Zohr Excel Résume de cours

GUIDE D UTILISATION CRÉER SON SITE WEB - PROJET RESCOL

STID 2ème année : TP Web/PHP

Le logiciel de création de site internet IZISPOT est un outil très puissant et qui est assez simple après quelques temps d utilisation.

FORMATION / CREATION DE SITE WEB / 4 JOURNEES Sessions Octobre 2006

Exploitation des données issues de BE ( utilisation du tableur CALC) Fiche de travail (individuelle ou en binôme)

INITIATION A EXCEL Année

TD de supervision. J.P. Chemla. Polytech Tours Département productique 2ème année

FORMATION EXCEL NIVEAU 2

Initiation à Excel. Frédéric Gava (MCF)

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Introduction à MATLAB R

Présentation. Référenciel : textes officiels

Centre de formation: Collège IBN BASSAM - TEMARA. Ce cours est proposé par le professeur d informatique:

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Cours Excel : les bases (bases, texte)

EXCEL TUTORIEL 2012/2013

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

La Clé informatique. Formation Excel XP Aide-mémoire

Pages 08 Guide de l utilisateur

Maîtriser l'utilisation des outils bureautiques. Maîtriser le logiciel de traitement de texte - Word. Maitriser le logiciel tableur - Excel

Pack Fifty+ Normes Techniques 2013

MANUEL DE L UTILISATEUR

Comment créer des rapports de test professionnels sous LabVIEW? NIDays 2002

ENVOI EN NOMBRE DE Mails PERSONNALISES

FICHE 1 : GENERALITES SUR EXCEL

WIMS. Découvrir et utiliser

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

CAP BOX Note utilisateurs

Activité 11 : Nuage de points ou diagramme de dispersion

Créer son questionnaire en ligne avec Google Documents

Guide utilisateur i-milo >> Décisionnel

Procédure d installation détaillée

Dans le sujet ci-dessous, il faut faudra : - écrire des réponses - surligner en jaune la ou les bonnes réponses

RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3

PRISE EN MAIN D UN TABLEUR. Version OPEN OFFICE

1 INTRODUCTION. PowerBuilder - Introduction. Pascal Buguet Imprimé le 19 août 2004 Page 1

Ce chapitre décrit comment insérer des tableaux de données dans un document. On va commencer par voir les environnements tabbing et

Numbers 09 Guide de l utilisateur

VOCABULAIRE LIÉ AUX ORDINATEURS ET À INTERNET

MANUEL D UTILISATION ORBITVU EDITOR V.3

1 Comment faire un document Open Office /writer de façon intelligente?

LIMESURVEY. LimeSurvey est une application permettant de créer des questionnaires d enquête en ligne et d en suivre le dépouillement.

HTML, CSS, JS et CGI. Elanore Elessar Dimar

mon site web via WordPress

Transcription:

Cours de Programmation Internet PHP-Introduction à la génération de graphiques, fichiers Excel et PDF Magali Contensin - CNRS PHP est principalement utilisé pour générer des pages Web au format HTML ou XHTML mais il permet également d envoyer vers le navigateur du client des données dans d autres formats (textes ou binaires). Génération de graphiques La bibliothèque graphique orientée objet JpGraph permet de générer très facilement des graphiques (courbes, histogrammes, camemberts 2D et 3D,...). Les images générées peuvent être stockées dans un fichier sur le serveur ou être envoyées au navigateur. Les formats d images possibles sont : png, gif, jpeg et wbmp. Génération de fichiers pour le tableur Excel Le module PEAR Spreadsheet_Excel_Writer permet de créer des fichiers Excel en PHP. PEAR (PHP Extension and Application Repository) gère la distribution de composants PHP appelés packages (ce sont des briques logicielles écrites en PHP objet). Génération de PDF FPDF est une classe PHP permettant de générer des fichiers au format PDF (gestion des en-têtes et pieds de pages, couleur, inclusion d images au format png et jpeg, format de page, liens, marges,...). Sources sur : http://crfb.univ-mrs.fr/~magali/coursphp Magali Contensin avril 2005 CNRS 1/10

1 Génération de graphiques Pour générer des graphiques, nous utiliserons la bibliothèque graphique orientée objet JpGraph. Celle-ci propose des classes pour chaque type de graphique. 1.1 Installation de JpGraph Vérifier la configuration requise JpGraph s appuie sur la bibliothèque GD de Thomas Boutell version 1.8.x ou > 2.15 (la version conseillée pour JpGraph v1.20.3 est GD 2.28). Si PHP n a pas été compilé avec cette bibliothèque il ne sera pas possible d utiliser JpGraph. Pour savoir si PHP est compilé avec GD et si la version de la bibliothèque est suffisante exécuter le script ci-dessous : phpinfo() ; Dans la page Web affichée il doit y avoir un tableau concernant gd. Celui-ci fournit les informations quant aux formats d images possibles (dans l exemple ci-dessous il est indiqué que 4 formats sont supportés). JpGraph fonctionne avec PHP >= 4.3.5 (la version conseillée pour JpGraph v1.20.3 est PHP 4.4.0). La fonction phpinfo() permet également de connaître la version de PHP : Télécharger Télécharger la version 1.x sur le site pour PHP4 (version stable en avril 2006 : 1.20.3) ou la version 2.x pour PHP5 sur le site : http://www.aditus.nu/jpgraph/index.php Installer Décompresser le fichier téléchargé et copier le répertoire dans le répertoire de travail ou dans un des répertoires spécifié par la directive include_path (cette directive est affichée par phpinfo). Magali Contensin avril 2006 CNRS 2/10

1.2 Créer un graphique La création d un graphique suit toujours le même schéma : - Inclusion de : o la bibliothèque principale jpgraph.php (constantes, classes) o une ou plusieurs classes selon le graphique à générer - Création du graphique (largeur et hauteur, titre, ombrage, couleur, ) - Création de l objet (ou des objets) à placer dans le graphique - Ajout de l objet (ou des objets) au graphique - Envoi du graphique // inclusions require("jpgraph/jpgraph.php"); require("jpgraph/jpgraph_line.php"); 300 // creation du graphique $graph = new Graph(300, 200); $graph->setscale("intint"); 200 // creation de l'objet courbe 1 $ydata = array(2, 6, 12, 6, 8, 1, 9, 13, 5, 7, 14); $courbe1 = new LinePlot($ydata); $courbe1->setcolor("red"); // creation de l'objet courbe 2 $ydata2 = array(8, 5, 4, 3, 1, 4, 8, 10, 11, 12, 12.5); $courbe2 = new LinePlot($ydata2); $courbe2->setcolor("blue"); // SetColor("#FF0000") // Ajouter les objets au graphique $graph->add($courbe1); $graph->add($courbe2); // Dessiner le graphique $graph->stroke(); // argument vide = envoi navigateur, chemin absolu = sauver La bibliothèque principale jpgraph.php est incluse ainsi que la bibliothèque pour les courbes jpgraph_line.php. Un graphique de largeur 300 et de hauteur 200 est créé avec une échelle entière sur les axes x et y. Les échelles disponibles sont lin (linéaires standard), text (pour mettre du texte sur les graduations en x), log (logarithmique), int (restreint aux entiers). Deux objets courbes de couleurs différentes sont créés (la liste des valeurs sur l axe des y est fournie, il est également possible de préciser les valeurs pour les abscisses) et sont ajoutés au graphique. L envoi vers le navigateur est réalisé par la dernière instruction. Les fichiers à inclure dépendent de l objet graphique à générer : jpgraph_line.php jpgraph_bar.php jpgraph_pie.php jpgraph_pie3d.php jpgraph_scatter.php jpgraph_radar.php Magali Contensin avril 2005 CNRS 3/10

1.3 Autres exemples de graphiques Création d un histogramme SetShadow SetColor SetMarginColor SetScale(textint) SetMargin(g, d, h, b) // inclusion des classes require('jpgraph/jpgraph.php'); require('jpgraph/jpgraph_bar.php'); // donnees des axes Y et X $ydata = array(15, 6, 30, 6, 12, 2); $xdata = array('jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Jui'); // creation du graphique $graph = new Graph(count($ydata)*50, 200); $graph->setscale("textint"); // style $graph->setshadow(); $graph->setcolor('white'); $graph->setmargincolor('gray6'); $graph->setmargin(40, 30, 20, 40);// marge gauche, droite, haut, bas // donner des titres et etiquettes $graph->title->set("exemple d'histogramme"); $graph->yaxis->title->set("nombre"); $graph->xaxis->title->set("mois"); $graph->xaxis->setticklabels($xdata); $graph->xaxis->settextlabelinterval(2); // creation histogramme $hist = new BarPlot($ydata); $hist->setwidth(1.0) ; $hist->setfillgradient("coral1","white", GRAD_MIDVER); // ajout du composant histogramme au graphique $graph->add($hist); // envoi image au format PNG $graph->img->setimgformat("png"); // formats autorises : png, gif, jpg $graph->stroke(); Magali Contensin avril 2006 CNRS 4/10

Création d un camembert 3D 400 SetShadow SetSize(0.5) = 50% de 400 SetLegends // inclusion des classes require('jpgraph/jpgraph.php'); require('jpgraph/jpgraph_pie.php'); // camembert require('jpgraph/jpgraph_pie3d.php'); // camembert 3D // creation du graphique $graph = new PieGraph(400, 200); $graph->setshadow(); $graph->title->set("netcraft Web Server Survey - fin 2005"); // creation objet camembert $data = array(20.24, 0.78, 70.98, 2.52); $legend = array('microsoft', 'Zeus', 'Apache', 'Sun'); $camembert = new PiePlot3D($data); $camembert->setangle(45); // angle de projection (10 a 85 degres) $camembert->setsize(0.5); // entre 0 et 0.5 $camembert->setcenter(0.4); // on peut definir x et y $camembert->setlegends($legend); $camembert->settheme('water'); // earth, water, pastel, sand // ajout du camembert au graphe $graph->add($camembert); // envoi $graph->img->setimgformat("png"); $graph->stroke(); SetCenter(0.4) = 40% de la largeur 10 degrés 45 degrés 85 degrés Magali Contensin avril 2005 CNRS 5/10

1.4 Afficher l image dans une page Web Lorsqu une image est produite elle peut être stockée sur le serveur (il suffit de passer en paramètre à la méthode Stroke le nom du fichier d image) ou envoyée au serveur Web. Le script php qui génère une image ne peut pas produire une page HTML. L'image (script php) doit être incluse dans une page HTML avec l'élément img. L adresse associée à l image est le nom du script générant le graphique. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/tr/html4/strict.dtd"> <html> <head> <title>inclusion d'image</title> </head> <body> <p>un graphique comportant deux courbes <img src="testcourbe.php" alt="courbes"> </p> </body> </html> Documentation Les classes et méthodes sont documentées dans le sous-répertoire ref du répertoire docs. Un manuel est disponible dans le sous-répertoire html du répertoire docs Magali Contensin avril 2006 CNRS 6/10

2 Génération de fichiers pour tableurs 2. 1 Solution 1 : CSV (comma-separated values) ou TSV (tabulation ) Format de fichier : - une ligne par ligne de tableau - les champs sont séparés par des virgules (CSV) ou par des tabulations (TSV) - Type MIME : text/csv pour CSV, text/tab-separated-values pour TSV // en tete HTTP header("content-type:text/tab-separated-values"); header("content-disposition:attachment;filename=testcsv.xls"); // Corps HTTP : fichier au format CSV echo "cellule a1\tcellule b1\tcellule c1\n"; echo "cellule a2\tcellule b2\tcellule c2\tcellule d2\n"; echo "cellule a3\tcellule b3\tcellule c3"; Il existe des fonctions PHP pour lire ou écrire des fichiers CSV (fputcsv et fgetcsv). Avec ces fonctions il est possible de préciser le séparateur 2.2 Solutions 2 : PEAR Le module PEAR Spreadsheet_Excel_Writer permet de créer un fichier Excel (format Excel 5 BIFF5) comportant plusieurs feuilles. Les données ont un style. Il est possible de définir les marges, les dimensions des colonnes et lignes et les en-têtes et pieds de page. Le module permet d écrire des formules Excel. Vérifier la configuration requise Pour utiliser ce module il faut que PHP soit compilé avec PEAR. Magali Contensin avril 2005 CNRS 7/10

Télécharger et installer Télécharger http://pear.php.net/get/spreadsheet_excel_writer-0.8.tgz et le module OLE-0.5 s il n est pas installé http://pear.php.net/get/ole-0.5.tgz > pear install Spreadsheet_Excel_Writer-0.8 Exemple // 1. inclusion du module Pear pour Excel require_once 'Spreadsheet/Excel/Writer.php'; // 2. Creation d'un classeur $classeur = new Spreadsheet_Excel_Writer(); // 3. Creation d'une feuille $feuille = &$classeur->addworksheet('feuille 1'); // style en tete de cellule $th = &$classeur->addformat(); // pointeur vers $classeur->addformat $th->setbold(); // gras $th->setcolor('white'); // texte blanc $th->setfgcolor('red'); // fond de la cellule rouge $th->setalign('center'); // alignement left, right, center // ecriture des donnees dans les cellules $feuille->write(0, 0, 'Nom', $th); // ligne 0, colonne 0, format $feuille->write(0, 1, 'Prenom', $th); // ligne 0, colonne 1, format $feuille->write(1, 0, 'Bond'); $feuille->write(1, 1, 'James'); $feuille->write(2, 0, 'Jones'); $feuille->write(2, 1, 'Indiana'); $feuille->write(3, 0, 'Gates'); $feuille->write(3, 1, 'Benjamin'); // 4. Creation d'une deuxieme feuille $feuille2 = &$classeur->addworksheet('xxx'); $feuille2->write(0, 0, 'test'); // donnees de la 2eme feuille // 5. Envoi du fichier au client $classeur->send('test.xls'); $classeur->close(); Documentation http://pear.activeventure.com/package/package.fileformats.spreadsheet-excel-writer.intro.html http://pear.activeventure.com/package/package.fileformats.spreadsheet-excel-writer.intro-format.html Magali Contensin avril 2006 CNRS 8/10

3 Génération de documents PDF La classe PHP FPDF permet de générer des fichiers au format PDF (gestion des en-tetes et pieds de pages, couleur, images au format png et jpg, format de page, liens, marges,...). Télécharger et installer Télécharger FPDF : http://www.fpdf.org/en/dl.php?v=153&f=tgz Placer le répertoire fpdf dans le répertoire de travail ou dans un dans un des répertoires d inclusion. Exemple // --------- 1. inclusion de la bibliotheque fpdf require('fpdf/fpdf.php'); // --------- 2. creation d'un document pdf // Mode (P)ortrait (L)andscape / Unites mm, pt, cm, in / Page A4, Letter, Legal $doc = new FPDF('P','mm','A4'); // --------- 3. ajout d'une page $doc->addpage(); // origine coin haut gauche, position courante 1cm du bord $doc->setfont('helvetica','',16); // famille, style (I, U, B, ), taille $doc->setfillcolor(155, 155, 155); // couleur du fond $doc->settextcolor(255, 255, 255); // couleur du texte; // ajout d'un rectangle de texte // arg 1 largeur (0 = prend toute la largeur), arg 2 hauteur, arg 3 texte // arg 4 cadre 0, 1, L (left), T, R, B // arg 5 position apres l'appel (0 droite, 1 nouvelle ligne, 2 en dessous) // arg 6 : alignement du texte L, R, C, arg 7 : remplissage du fond 0, 1 $doc->cell(0, 10, 'test pdf', 1, 1, C, 1); $doc->setfont('times','b',12); $doc->settextcolor(0, 0, 0); $doc->cell(0, 10, 'un autre test', 0, 1, L, 0); $doc->cell(0, 10, 'du texte'); // ------- 4. envoi au client $doc->output("test.pdf", I); // envoyer au navigateur sous le nom Test.pdf Magali Contensin avril 2005 CNRS 9/10

require('fpdf/fpdf.php'); //------------- classe fille pour redefinir l'en-tete et le pied de page class monpdf extends FPDF { function Header(){ $this->setfont('helvetica','b',16); $this->setfillcolor(155, 155, 155); $this->settextcolor(255, 255, 255); $this->cell(0, 10, 'C.R.F.B', 1, 1, 'C', 1); $this->ln(20); } function Footer(){ $this->sety(-20); // pied de page a 2 cm du bas $this->setfont('times', '', 12); $d = date("d/m/y"); $this->cell(0, 10, $d, T, 0, L); $this->cell(0, 10, 'p. '.$this->pageno().'/{nb}', 0, 0, 'R'); } } //------------ creation du document et envoi $doc = new monpdf('l','mm','a4'); $doc->aliasnbpages(); // alias sur le nb de pages $doc->addpage(); $doc->setfont('times','',12); for($i=0; $i<=20; $i++){ $doc->cell(0, 10, 'ligne '.$i, 0, 1); } $doc->output(); Documentation Tutorial : http://www.fpdf.org/en/tutorial/index.php Manuel : http://www.fpdf.org/en/doc/index.php Magali Contensin avril 2006 CNRS 10/10