Version 6 — Octobre 2023 — tofulm
SPIP propose de nombreuses solutions pour générer des pdfs de façon dynamique.
Cette article propose de les répertorier et de les tester en ce qui concerne leur support des polices de caractères exotiques.
Il existe de nombreux plugins qui font du pdfs mais tous se basent sur l’un des plugins/moteurs suivants
Nom du plugin | URL | Développement actif | Moteur de génération de pdf | |
---|---|---|---|---|
pdf_version | https://plugins.spip.net/pdf_version.html | oui (pdfshift) | choix entre deux moteurs de rendu pdf - whkhtml (binaire sur serveur ou API) - pdfshift (API, service tiers payant) | |
spiPDF | spiPDF : générer des contenus sur mesure en PDF | oui (domPDF / mpdf) | choix domPDF) | choix entre trois moteurs de rendu pdf - mPDF (librairie PHP) - HTML2PDF (librairie PHP) - domPDF (librairie PHP) |
FPDF | FPDF Ce plugin est utilisé par d’autres plugins notamment - Article PDF - PDForm : générer un PDF à partir de données éditoriales |
non | Librairie FDPF (librairie PHP) |
La différences entre les moteurs résident :
- dans le respect de la mise en page (notamment le rendu des CSS complexes)
- les fonctionnalités spécifiques au pdf
— les entetes et pied de page
— les liens internes
— le rendu des images et autres médias
— les sommaires automatiques
— le rendu des caractères unicode (voir plus bas)
Voici un texte « acid test » pour tester le rendu des caractères unicode
- langue asiatique et non européenne (chinois, japonais, russe ...)
- le mongol ancien (vertical),
- arabe (droite),
- émojis
Vous pouvez recopier ce texte pour créer un article SPIP et tester le rendu de votre solution de génération des PDFs
Résultat du test
Plugin | Remarques |
---|---|
PDF Version (wkhtml) | rendu incomplet : pas de support de certaines langues coréen, emoji, ...) très lié aux polices embarquées. |
PDF Version (shiftpdf) | rendu parfait. support de toutes les langues même rares. |
spidf | bon rendu général même sur les langues asiatiques et arabes. bug sur les unicodes rares/anciens (mongol) et les emojis |
Pour les polices embarquées, il existe le projet Noto de Google qui offre un choix énorme de polices dans des langues rares.
La solution la plus performante pour le support des caractères unicode est donc PDF Version (shiftpdf)
La version spipdf reste une solution open-source, gratuite assez performante