PDForm : générer un PDF à partir de données éditoriales

Création d’un PDF mis en page avec des Objets.

Présentation

Le plugin PDForm s’adresse à des personnes utilisatrices confirmées.

Il répond à un objectif simple : permettre la création d’un fichier PDF sans passer par du HTML, directement à partir des données de n’importe quelle table d’objet éditorial, ou par un flot d’informations indépendant des objets. À partir de la mise en page configurée et des informations transmises, il permet de créer des PDFs personnalisés tels que cartes de visite, carte d’adhérent, badge d’accès ou formulaires administratifs, courrier de bienvenue au site, etc.

D’autres plugins, beaucoup plus simples d’utilisation, peuvent vous convenir si votre but n’est pas celui-ci. Notamment le plugin ArticlePDF qui permet d’établir très facilement un PDF, mais seulement à partir d’un article.

Installation

L’installation se déroule comme pour tous les plugins, cf. http://www.spip.net/fr_article3396.html.

A l’installation, la librairie FDPF sera installée dans un répertoire indiquant son nom et son numéro de version pour faciliter une utilisation partagée par d’autres plugins.

Une fois le plugin activé vous pouvez le paramétrer.

Une prise en main rapide peut alors se faire en installant des exemples. Pour un auteur SPIP au statut administrateur, le peuplement de votre base de données pour ces exemples se fait en visualisant la liste des patrons dans le menu Edition|Patrons, dans la partie gauche.

Outils éditoriaux disponibles

Le plugin utilise trois objets éditoriaux :

-  Le patron [1] est l’objet éditorial définissant les paramètres globaux du PDF (nombre de pages, orientation...).
-  La cellule [2] est une possibilité d’intégrer à un endroit précis un court texte (généralement un champ d’une table d’un des objets de SPIP).
-  Le cadrage [3] permet d’intégrer une image de fond sur lequel votre texte s’affichera.

Création de PDF à partir d’objets

Le principe est très simple et en deux étapes :

1°) Créer le patron et lui associer des cellules et des images.

Des cellules sont associées au patron créé. Ces cellules vont chercher des valeurs dans les champs des objets. Votre patron peut utiliser plusieurs objets pour créer le PDF.

Par exemple un auteur, pour lequel on va utiliser la valeur du champs @nom@, et son adresse, pour laquelle on va utiliser les champs @voie@, @code_postal@ et @commune@ issus du plugin Coordonnées.

Illustration de la fiche d’un objet « patron »
Des cellules sont associées au patron pour lui apporter les valeurs d’autres objets éditoriaux.
Illustration de la modification d’une cellule
Le cellule permet de définir les valeurs des champs des objets éditoriaux. Ici, la @civilite@ est sollicitée. En sont absence, on place la @civilite_substitution@. Le @prenom@ suit. En son absence, on utilise @prenom_substitution@. Vient après le @nom@, ou, en son absence, le @nom_substitution@. PDForm cherche les valeurs dans les champs de la table auteur. En leur absence, ils les remplacera par les valeurs données par le flot accompagnant le formulaire de création (voir ci-dessous pour cette utilisation avancée).

2°) Appeler le patron dans un formulaire qui va créer le PDF

Un formulaire de base est fourni pour produire le PDF (voir ci-après l’utilisation avancée). Il convient de l’adapter à vos besoins.

L’appel du formulaire doit se faire en transmettant les identifiants uniques des objets dont on veut que le patron aille chercher les valeurs. Ces identifiants uniques sont transmis au format auteur|9,adresse|8, etc. Il s’agit du format géré par le filtre |picker_selected fourni par SPIP.

Utilisation avancée

1°) Créer un formulaire sur mesure et l’accompagner d’un flot

Au-delà de la définition du PDF par les objets précités, il est possible d’intégrer du contenu dans le PDF par un flot d’informations introduit à l’appel du formulaire de construction.

Là aussi, un exemple est donné : #FORMULAIRE_PDFORM. Pour tester le patron que vous avez créé, ce formulaire doit être appelé dans pdform/prive/objets/contenu/pdform_patron.html.

Le flot permet de compléter les limitations des objets. Les textes de grande longueur y sont gérés plus aisément. Des formes géométriques peuvent être ajoutées.

Le flot est un tableau transmis avec trois clés principales :
-  arguments,
-  formes,
-  textes.

La personne chargée du développement pourra faire évoluer ce formulaire au regard des besoins.

Formulaire de création d’un PDF
Le formulaire permet d’aller chercher les informations dans un objet éditorial en l’accompagnant de son numéro unique.
Exemple de création possible avec le plugin
Faire une lettre à un auteur pour lui donner une carte d’abonnement. Cet exemple concret peut être installé sur votre site. Un auteur ayant les droits d’administrateur, peut procéder au peuplement de la base de données proposé lors de la consultation de la liste des patrons disponible (Menu Edition|Patron).

2°) Placer des conditions

Les cellules visent à transmettre les valeurs d’un champ d’un objet éditorial. Il est possible de soumettre ces champs à des conditions.

Les conditions [4]
conditioneffet
@se_substitue_a@>@cela@ si @se_substitue_a@ existe alors il remplace @cela@. Exemple @type_voiture@>@voiture@ avec pour valeur 4x4 hybride et 4x4 affichera 4x4 hybride

Notes

[1L’objet patron a pour table spip_pdform_patrons.

[2L’objet cellule a pour table spip_pdform_cellules et pour table auxiliaire, de liaison, spip_pdform_cellules_liens.

[3L’objet cadrage a pour table spip_pdform_imageset pour table auxiliaire, de liaison, spip_pdform_images_liens .

[4L’ensemble des conditions sont dans le fichier inc/pdform_creer au niveau de la fonction pdform_balisage_dynamique()

Discussion

Une discussion

  • À partir de l’interface définie, serait il envisageable, via une option, de produire à la fin des diapositives dans un format image (JPG par exemple) plutôt qu’un PDF ?

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

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

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom