SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 284 visiteurs en ce moment

Accueil > Rédaction > Imprimer et PDF > FPDF > FPDF

FPDF

21 juillet 2012 – par erational, gilcot, Pierre KUHN – 24 commentaires

4 votes

Ce plugin sert à générer des pdfs via la librairie fpdf

Ce tout petit plugin a été créé pour permettre une utilisation de la bibliothèque (library) FPDF par tout autre plugin. En effet, plusieurs plugins, dont Associaspip et AMAP, utilisent déjà cette librairie. Or si deux plugins intègrent séparément le zip, elle serait présente deux fois, peut-être en des versions différentes et incompatibles ; tandis que là on a une seule installation et une mise à jour commune pour tous les plugins utilisant FPDF.

La bibliothèque objet FPDF permet de fabriquer des PDF sur mesure, contrairement aux autres plugins qui ne génèrent que le PDF d’un objet éditorial (l’article) dans un formatage prédéfini. Cette bibliothèque de méthodes s’adresse aux développeurs de plugins : elle permet d’utiliser toutes les tables et filtres de SPIP mais ne fournit pas les pages PHP qu’il faut écrire soit-même !

Contrairement à PDFlib et ClibPDF, qui sont gratuits pour un usage non-commercial, FPDF est vraiment un logiciel libre d’où son choix préférentiel

La version 0.0.3 inclut aussi la libraire complémentaire FPDI permettant l’éditer, de fusionner des pdfs existants. Par exemple, on peut ainsi créer des pdfs personnalisés en partant d’un pdf patron.

Voir Réaliser un PDF personnalisé avec FPDF

Installation

De préférence, utiliser la fonction d’installation automatique des
plugins (SPIP 2 & 3). Si STEP est installé et qu’un plugin nécessite FPDF, celui-ci le sera automatiquement.

Pour les versions 1.9 de SPIP, télécharger le zip, dézippez-le, puis suivez la procédure normale d’installation.

Utilisation

-  Déclaration dans le plugin
Pour utiliser cette bibliothèque dans vos plugins, il faut le déclarer dans votre plugin.xml :
<necessite id="fpdf" version="[1.0.0;]" />
ou
<utilise id="fpdf" version="[1.0.0;]" />

Utilisation dans les fichiers : niveau 1
Pour charger la librairie, dans vos plugins, utliser le code :

  1. define('FPDF_FONTPATH','font/');
  2. include_spip('fpdf');
  3. // include_spip('fpdi'); // pour charger FPDI

Télécharger

À partir de là, vous pouvez utiliser les méthodes de FPDF conjointement à l’API de SPIP.

Pour instancier un objet à tout moment :

  1. $mon_pdf = new FPDF();
  2. // ....

Télécharger

Utilisation dans les fichiers : niveau 2
Vous pouvez étendre la classe FPDP par une classe PDF et y redéfinir certaines méthodes, par exemple dans pdf/extends.php à la racine du plugin.

Ensuite il faudra appeler cette classe via

  1. include_spip('pdf/extends');

.

Pour instancier un objet avec la classe étendue :

  1. $mon_pdf = new PDF();

Voir en ligne : http://plugins.spip.net/fpdf

Dernière modification de cette page le 15 décembre 2015

Retour en haut de la page

Vos commentaires

  • Le 4 juin 2015 à 22:26, par kh En réponse à : FPDF

    svp j’ai un problème mon fpdf génère la 1er page mais les autres nn :p

    • Le 5 juin 2015 à 09:08, par Pierre KUHN En réponse à : FPDF

      Bonjour,

      Que tester vous exactement ?

    Répondre à ce message

  • Le 5 octobre 2012 à 18:38, par Labisse En réponse à : FPDF

    Vraiment pratique ce plugin je débute sur SPIP après des années sous WP, c’est le genre de plugin qui m’invite a continuer a explorer ce CMS

    • Le 6 octobre 2012 à 19:37, par gilcot En réponse à : FPDF

       ;-) Et ne pas hésiter à faire remonter tout souci d’utilisation ou suggestion d’amélioration.

    Répondre à ce message

  • Le 25 septembre 2012 à 15:58, par Mélinda En réponse à : FPDF

    Vous pourriez tout de même mettre en place un espace de test comme le http://demo.spip.net/spip.php ce qui permettrait au débutant comme nous de se faire tout de même une idée.
    Merci et bon courage

    • Le 6 octobre 2012 à 18:31, par gilcot En réponse à : FPDF

      Bonjour Mélinda.

      C’est un plugin pour développeur : une brique pour permettre à d’autres plugins de générer facilement des PDFs. Par conséquent, il ne s’adresse pas vraiment aux débutants d’une part, et il ne peut pas avoir de page de démo tout seul d’autre part (en fait il faudra des démos pour les plugins qui l’utilisent)

      Merci et bon week-end.

    Répondre à ce message

  • Le 25 septembre 2012 à 19:40, par Frank En réponse à : FPDF

    Enfin, ça fait longtemps que je cherche à faire cela. Merci pour les conseils. Spip n’est pas évident mais on peut faire pas mal de chose avec !

    • Le 25 septembre 2012 à 19:47, par Pierre KUHN En réponse à : FPDF

      Bonjour

      Si tu as dev un site avec, je suis preneur de suggestions

    Répondre à ce message

  • Le 24 juillet 2012 à 18:20, par Thomas Weiss En réponse à : FPDF

    Bravo ! Je viens de commencer à travailler dessus c’est très utile ! Merci.

    • Le 24 juillet 2012 à 18:33, par Pierre KUHN En réponse à : FPDF

      Hésite pas si tu as des questions. une fois ton plugins sur zone, dis nous le quel, qu’on regarde un peu ton utilisation.

    • Le 24 juillet 2012 à 18:54, par gilcot En réponse à : FPDF

      Et aussi si tu as quelque remarque permettant d’améliorer cette page de prise en main (documentation serait un bien grand mot comparé au manuel et aux exemples sur le site du projet) ;)

    • Le 24 juillet 2012 à 19:05, par Thomas Weiss En réponse à : FPDF

      En fait je ne l’utilise (encore) pas dans le cadre d’un plugin. J’avais simplement besoin de pouvoir créer un pdf très personnalisé dont le contenu provient de plusieurs tables spip. J’avais testé les autres plugins mais cela ne convenait pas à mes besoins.

    • Le 24 juillet 2012 à 19:08, par Thomas Weiss En réponse à : FPDF

      Pour améliorer la page de prise en main je propose de mettre des bouts de codes des fichiers tutoriaux, notamment ceux où l’on voit du spipcode. Cela fera peut-être moins peur aux néophytes en php !

    • Le 26 juillet 2012 à 12:22, par thomas1 En réponse à : FPDF

      J’ai eu des problèmes d’affichage des caractères spéciaux. Après plusieurs tentatives j’ai trouvé comment les afficher correctement (notamment les apostrophes française arrondies qui m’ont donné du fil à retordre)

      Voici le code de la fonction WriteHTM où j’ai ajouté deux traitements au début :

      function WriteHTML($html)
      {


      $html = html_entity_decode($html, ENT_QUOTES | ENT_HTML401, "UTF-8");
      $html = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $html);
      //$html = utf8_decode($html); ligne remplacée par ligne du dessus pour résoudre problème des apostrophe arrondies

              // Parseur HTML
              $html = str_replace("\n",' ',$html);
             
              $a = preg_split('/<(.*)>/U',$html,-1,PREG_SPLIT_DELIM_CAPTURE);
              foreach($a as $i=>$e)
              {
                      if($i%2==0)
                      {
                              // Texte
                              if($this->HREF)
                                      $this->PutLink($this->HREF,$e);
                              else
                                      $this->Write(5,$e);
                      }
                      else
                      {
                              // Balise
                              if($e[0]=='/')
                                      $this->CloseTag(strtoupper(substr($e,1)));
                              else
                              {
                                      // Extraction des attributs
                                      $a2 = explode(' ',$e);
                                      $tag = strtoupper(array_shift($a2));
                                      $attr = array();
                                      foreach($a2 as $v)
                                      {
                                              if(preg_match('/([^=]*)=["\']?([^"\']*)/',$v,$a3))
                                                      $attr[strtoupper($a3[1])] = $a3[2];
                                      }
                                      $this->OpenTag($tag,$attr);
                              }
                      }
              }
      }

      Cela fonctionne encore faut-il que la fonction iconv soit disponible...

    • Le 26 juillet 2012 à 14:41, par Pierre KUHN En réponse à : FPDF

      Ah bien, je vais essayer de le faire sur le plugins Amap
      Tu pourrais me dire sur quel fichier tu as fait cela ?

    • Le 27 juillet 2012 à 09:57, par gilcot En réponse à : FPDF

      Bonjour Thomas.

      Je pense qu’il s’agit d’une nouvelle discussion (et donc qu’il fallait faire un nouveau message plutôt que de répondre à un autre, pour qu’on puisse facilement suivre)

      D’après ses logs, FPDF a des problème d’encodage qui ont été corrigés et il supporte l’UTF8... Mais (car il reste un « mais ») les polices livrées par défaut ne sont pas Unicode... :-S
      Pour en revenir à votre solution, c’est quelque chose à faire systématiquement en PHP : il faut utiliser html_entity_decode pour transformer le texte balisé en HTML (avec les entités numériques ou nommées) en texte brute (tel qu’on mettrait directement dans le « bloc notes » et donc avoir des caractères accentués et non les entités).
      Pour translittérer les caractères Unicode avant de les afficher avec FPDF il faut utiliser utf8_decode : qui n’a pas besoin de la présence de iconv ni ne nécessite de faire des remplacements de sous-chaine
      En fait utf8_decode fonctionne aussi avec les entités XML des chaines de langue comme on peut le voir das exec/pdf_activites et exec/pdf_fiscal de Associaspip

    • Le 28 juillet 2012 à 13:37, par Thomas Weiss En réponse à : FPDF

      Merci Gilcot. En fait, avec utf8_decode, il reste le problème des apostrophes françaises arrondies qui sont remplacées par un point d’interrogation. Il semble que uf8_decode() ne les gèrent pas.

    • Le 28 juillet 2012 à 19:19, par gilcot En réponse à : FPDF

      Ah, ok.
      C’est vrai que iconv peut donner un meilleur résultat, sous réserve qu’il soit disponible sur la machine où le script tourne.
      Ceci dit, ces problèmes sont dus au fait que les polices libres fournies par défaut ne sont pas Unicode d’une part et encodé en cp1252 par défaut... Vos projets peuvent fournir leur police et les charger avec la méthode AddFont http://fpdf.org/en/tutorial/tuto7.htm http://fpdf.org/en/doc/addfont.htm
      C’est le prix de la simplicité de la classe FPDF http://stackoverflow.com/questions/6334134/fpdf-utf-8-encoding-how-to

    Répondre à ce message

  • Le 21 juillet 2012 à 19:55, par ? En réponse à : FPDF

    FPDF ne devrait pas se trouver dans le dossier « lib » à la racine du site, comme les autres librairies externe ?

    • Le 21 juillet 2012 à 20:37, par Pierre KUHN En réponse à : FPDF

      Bonjour

      Non car une partie des fichiers est du php que SPIP dois pouvoir lire je sais pas si en pib/ ça fonctionnerais.

    • Le 21 juillet 2012 à 21:20, par Spipeur débutant En réponse à : FPDF

      Pourquoi n’y a-t-il pas de démonstration (ou site demo) du résultat obtenu avec ce plugin ? Sur tous les plugins de Spip-Contribs, ça fonctionne comme ça...

      Merci par avance.

    • Le 21 juillet 2012 à 21:47, par Spipeur débutant (suite et fin) En réponse à : FPDF

      Ça permettrait de faire un comparatif avec ce Spipdf (URL : http://plugins.spip.net/spipdf.html)...

    • Le 22 juillet 2012 à 00:27, par Maïeul En réponse à : FPDF

      en fait, c’est un plugin pour dev de plugin, et non pas un plugin « clef en main ». Dans ce genre de cas l’administrateur de contrib peut admettre de laisser un article moins didactique, car on suppose que la personne qui va lire est capable de comprendre comment faire.

      En gros, ce n’est pas un article pour « spipeur débutant ». C’est un plugin qui sert pour les dev de plugin.

    • Le 22 juillet 2012 à 12:40, par Pierre KUHN En réponse à : FPDF

      Et puis spipdf est bridé pour les article hors nous avons monter un plugins qui permets de monter un pdf depuis n’importe qu’elle table et le contenu que tu souhaites, faut maitriser le php et les boucles contrairement à spippdf qui est clef en main.
      Démo ? pas jouable car c’est un plugins ’additif’ et pas un plugins dépendant.

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Adaptive Images

    15 novembre 2013 – 66 commentaires

    Un plugin pour permettre aux sites responsive d’adapter automatiquement les images de la page à l’écran de consultation. Adaptive Images, que l’on pourrait traduire par Images adaptatives, désigne la pratique qui vise à adapter les taille, (...)

  • Métas

    8 août 2009 – 50 commentaires

    Ce petit plugin permet l’ajout, depuis l’espace privé, de metatags aux articles et rubriques de SPIP, ainsi que la mise en exergue de mots importants.

  • Brownie

    6 juillet 2012 – 43 commentaires

    Brownie est une adaptation pour Zpip du thème du même nom initialement développé par Egrappler.com. Présentation Brownie est un thème Responsive à deux colonnes. La démonstration ci-dessous utilise la version 2.0.0 de Brownie, la dist de SPIP3 (...)

  • Métas +

    3 décembre – 13 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

  • Acces Restreint 3.0

    11 décembre 2008 – 785 commentaires

    Le plugin accès restreint permet de définir et de gérer des zones de l’espace public en accès restreint. Cette version du plugin a été redévelopée et optimisée tout spécialement pour SPIP 2.0. Il en découle une amélioration des performances sur les gros (...)

Ça spipe par là