PDF version

Crée des PDFs avec vos contenus

Deux solutions proposées dans ce plugin

Pour vous aider dans votre choix, voir l’article Comparatif des solutions pdf pour SPIP

Solution n°1 : Wkhtmltopdf

Headless ?

La plupart des outils de conversion HTML/CSS vers PDF utilisent des librairies reposant sur des langages comme PHP, Javascript, Python, etc.

On pourrait dire que ces librairies « réinventent la roue » puisque nos navigateurs savent déjà faire cela. D’où l’idée d’utiliser le moteur de rendu d’un navigateur Web pour faire le travail.

Wkhtmltopdf utilise WebKit, le moteur de rendu du navigateur Safari.

Installation et configuration

Après avoir installé le plugin, rendez-vous directement sur sa page de configuration pour choisir par quelle méthode vous voulez faire appel à wkhtmltopdf

  1. par exécution sur le serveur
  2. par une API http
Configuration pour la solution Wkhtmltopdf

Cette étape peut être bloquante pour la plupart des utilisateurs. Aussi voici quelques retours d’expérience.

En local sur Mac
  • aller sur https://wkhtmltopdf.org/downloads.html
  • télécharger l’installeur pour MacOS
  • installer Wkhtmltopdf
  • Revenir à votre site SPIP et aller dans la page de configuration du plugin
  • Choisir la méthode de génération « exec(’wkhtmltopdf’) sur le serveur »
  • Dans le champ « Chemin d’accès au binaire wkhtmltopdf » taper ’wkhtmltopdf
En local sur PC

Méthode avec Laragon :

  • aller sur https://wkhtmltopdf.org/downloads.html
  • télécharger l’archive 64-bit pour windows dans le dossier C :\laragon\usr\bin
  • extraire le contenu de l’archive
  • Revenir à votre site SPIP et aller dans la page de configuration du plugin
  • Choisir la méthode de génération « exec(’wkhtmltopdf’) sur le serveur »
  • Dans le champ « Chemin d’accès au binaire wkhtmltopdf » tapper C :\laragon\usr\bin\wkhtmltox\bin\wkhtmltopdf.exe’ (c’est le chemin d’accès complet à l’exécutable)
Sur un serveur via accès SSH [1]

Nom du compte : foo
Répertoire de wkhtmltopdf : $HOME/wkhtmltopdf/

foo@ssh:~/wkhtmltopdf$ wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_amd64.deb
foo@ssh:~/wkhtmltopdf$ dpkg -x wkhtmltox_0.12.6-1.buster_amd64.deb .

Les binaires seront disponibles dans le répertoire $HOME/wkhtmltopdf/usr/local/bin/.

N’hésitez pas à faire part de votre expérience à ce sujet dans les commentaires de cet article. Nous ne manquerons pas de les intégrer dans cette doc.

Solution n°2 : PDFShift

Solution sans doute plus pérenne que Wkhtmltopdf, car elle évite de devoir gérer des installations en local et sur un serveur, et marchera avec tout type d’hébergement.

Elle permet également

  • d’utiliser CSS3, Flex layout et Grid layout
  • de restituer des graphiques générés par le plugin Chart.js, ainsi que le plugin Annotation de ChartJS
  • etc. ?

PDFShift est un service tiers payant, mais que vous pouvez tester gratuitement.
Après vous être inscrit, vous recevrez votre clé API que vous devrez renseigner dans la configuration du plugin.

Configuration pour la solution PDFShift

Dans vos squelettes

Prérequis

Avoir activé le fichier htaccess.txt qui se trouve à la racine de votre site.
Pour cela vous devez renommer ce fichier comme suit : .htaccess

Méthodologie

  1. avoir créé au moins un article et l’avoir publié.
  2. dans cet exemple on va utiliser le squelette article.html et lui ajouter la balise #URL_PDF_VERSION comme ceci
<a href="#URL_PDF_VERSION{article,1}">Voir mon PDF</a>

Rendez-vous sur la page publique de l’article #1 et cliquez sur le lien « Voir mon PDF »

Passer des paramètres

La balise #URL_PDF_VERSION ne prend pas de paramètre. Si vous devez en passer, vous devrez utiliser #URL_PDF_PAGE

[(#URL_PDF_PAGE{article,id_article=#ID_ARTICLE&id_mot=#ID_MOT})]

Ça va utiliser les mêmes squelettes, mais par contre ça va générer des fichiers PDF nommés différemment et avec un hash pour gérer la multiplicité des arguments possibles.

Nouveaux squelettes et surcharges

Les balises #URL_PDF_VERSION et #URL_PDF_PAGE vont chercher les squelettes dans le répertoire /pdf_version/pdf_version
Vous pouvez placer vos nouveaux squelettes et surcharges dans /squelettes/pdf_version

Options

Le plugin reçoit plusieurs options de mise en page qu’on peut ajouter aux squelettes surchargés.

Ces options sont ajouté dans un commentaire dans le <head> du squelette, exemple :

<!--
--orientation=Landscape
--page-size=A4
--margin-top: -15mm
-->

On peut trouver une liste de ces options dans /inc/generer_pdf_version_fond.php.

Notes

Discussion

Aucune discussion

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