Version 3 — Juillet 2023 — erational
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
Il existe de nombreux plugins qui font du pdfs mais tous se basent sur l’un des plugins/moteurs plugins suivants
Nom du plugin | URL | Développement actif | Moteur de génération de pdf actif | Remarques |
---|---|---|---|---|
pdf_version | https://plugins.spip.net/pdf_version.html | oui (pdfshift) | choix shilftpdf) | choix entre deux moteurs de rendu pdf - whkhtml (binaire sur serveur ou API ) - [pdfshift->https://pdfshift . pdfshift ( service tiers payant ) |
|spiPDF|spiPDF : générer des contenus sur mesure en PDF io] | (API, service tiers payant) |
|spiPDF|spiPDF : générer des contenus sur mesure en PDF |oui ( domPDF)|choix |non|choix entre trois moteurs de rendu pdf < br >- mPDF < br >- HTML2PDF
- [mPDF->https://github . domPDF |
|FPDF|FPDF com/IanNBack/mpdf] (librairie PHP)
- [HTML2PDF->https://www.html2pdf.fr/] (librairie PHP)
- [domPDF->https://github.com/dompdf/dompdf] (librairie PHP)|
|FPDF|FPDF
Ce |non|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->http://www.fpdf.org/] (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)
unicodes}
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 est donc PDF Version (shiftpdf)
La version spipdf reste une solution open-source, gratuite assez performante