remihackert.net

Plugin FPDF4DC2 : PDF à la volée pour Dotclear 2 avec la classe FPDF

Voici un plugin construit autour de la classe php nommée fpdf. Il permet à Dotclear 2 de générer des PDF à la volée à partir d'un billet avec justification du texte, inclusions des images et contournement de celles ci par le texte, bref l'allure minimale et classique d'un article.

fpdf4dc2.jpgLe plugin est disponible ICI et s'installe d'une façon très classique. Lentement mais sûrement on approche d'une version assez fonctionnelle.

Le plugin crée la balise {{tpl:PdfRequestButton}} qu'il faut ajouter dans votre fichier post.html qui se trouve dans le répertoire tpl de votre thème.

Si vous utilisez des pages statiques faites alors de même avec le fichier page.html. Après avoir placé une icône nommée pdf.jpg dans le répertoire /img de votre thème. Celle ci apparaîtra lors de l'affichage du message ou de la page. Si vous ajouter par ailleurs ce {{tpl:PdfRequestButton}} sur une page de catégorie ou de tag alors le pdf généré regroupera tous les articles avec optionnellement un sommaire contenant des liens vers les articles ! Autre possibilité: Sur la page d'administration des billets, une nouvelle action a été insérée dans le menu déroulant: Print TO PDF. On peut sur cet page d'administration sélectionner plusieurs billets et demander un pdf.

Limitation actuelle.

Le document html source doit être propre. Ce qui est généralement est le cas si vous éditez vos messages avec l’éditeur de Dotclear.

La classe FPDF ne gère pas directement les balises html. C'est le rôle du plugin de parser et implémenter ses balises. Actuellement les balises suivantes sont prises en compte

p, b, u, i, a, img, p, br, code, strong, em, font, tr, blockquote, h1, h2, h3, h4, h5, h6, li ,ul, aside. Elles suffisent à créer des documents simples, propres et utilisées à bon escient même assez élégants. Les autres balises sont simplement ignorées.

Le générateur de pdf n'optimise pas le positionnement des éléments lors des ruptures de pages. Il n'inverse pas l'ordre des objets à afficher. Néanmoins, pour éviter des gros trous en bas de page particulièrement lorsque' une image tombe en bas de page, il se permet d'en adapter un peu la dimension pour la faire rentrer au lieu d'introduire de suite un changement de page avec un gros trou dans le bas de la page précédente.

Les images sont positionnées à droite ou à gauche et le texte contourne l'image.

Enfin l'aspect du document final est contrôlable via l'interface d'administration: format, fonte, logo, page de garde, page de couverture, multi-colonne

 

Versions (la partie décimale du numéro de version 182 fait référence à la version de la librairie fpdf incluse 1.82.)

  • 0.5.182 Possibilité de sélectionner des billets sur la page d' administration des posts et de demander un pdf de l'ensemble. Ajout d'une page de couverture (05/2021)
  • 0.4.182  Multicolonne: les images sont pour le moment réduites aux dimensions de la colonne. Introduction de quelques classes d’image qui verront leur affichage dans le pdf multicolonne traité d'un façon particulière (04/2021).
  • 0.3.182 possibilité étendue à la page Tag. Une page d'administration est née ! (03/2021).
  • 0.2.181 possibilité d'utiliser le tpl sur une page de catégorie et de créer un pdf de tous les billets associés à cette catégorie. Remplacement du bouton texte par une icône (2018).
  • 0.1.170 version première (2014).

ToDo liste

Faire générer les pdf de chaque billets qui seraient  stockés dans un répertoire public. Lors d'une demande de pdf, on verifie si présent et on ne recrée pas le pdf à la volée s'il existe deja mais on envoie le pdf existant.

Réaliser une interface d'administration digne de ce nom et donc le passage de paramètre au plugin... Done

Test sur un blog fonctionnant avec des  path / et non en query string (index.php?post). pathinfo ne fonctionne pas sur mon serveur et je suis dans l'incapacite de tester

Test sur une installation en multiblog

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : https://www.animals-in-motion.com/remihackert/index.php?trackback/4

Fil des commentaires de ce billet