OpenEdition / lodel

Science publishing CMS
GNU General Public License v2.0
50 stars 27 forks source link

Génération automatique de PDF #101

Open ssonnet opened 5 years ago

ssonnet commented 5 years ago

Bonjour,

Il s'agit plus d'une question que d'un problème. Je présume que Lodel ne fait pas de génération automatique de PDF à partir des articles importés ? Sur le site www.openedition.org, il me semble qu'une version PDF des articles de revue est systématiquement disponible. Est-ce de la génération automatique ? Si oui, comment est constituée (outils, techno, etc.) la solution en place, et est-ce quelque chose qu'il est envisageable de "récupérer" ?

Cordialement. Sylvain sonnet

SylDanh commented 5 years ago

Bonjour, J'ai fait la même demande que vous (en 2014). voici la réponse :

Nous avons en effet développé une application de génération automatique de pdf utilisant les données disponible dans Lodel. Mais cette application n'est pas diffusée librement comme Lodel. Il existe plusieurs application permettant la génération de pdf. Par exemple FOP http://xmlgraphics.apache.org/fop/ qui s'appuie sur XSL-FO D'autres application permettent la conversion de html css en pdf comme weasyprint http://weasyprint.org/ ou wkhtmltopdf http://wkhtmltopdf.org/ Aucune de ces solutions n'est parfaite car chacune supporte un certains nombre de possibilités (entête/pied de page, gestion des veuves et orphelines, colonnes...) mais jamais toutes. Attention, ces applications peuvent être assez gourmandes en ressources serveur. Il faut à mon avis impérativement prévoir un système de cache des pdf générés.

jfriviere commented 5 years ago

Bonjour,

En effet, OpenEdition a mis en place un système de génération de pdf en 2013. C'est une application développée en interne que nous ne prévoyons pas de diffuser publiquement, mais je peux vous décrire le principe :

L'application permet la génération de PDF et d'ePub (ePub 2). Pour les PDF, si l'éditeur a déposé une version PDF de son article, il est utilisé. Un système de templating (fait en PHP, mais qui pourrait être fait en Lodelscript) produit des versions html des documents. Ces versions html sont utillisées pour produire des ePub et, lorsque le PDF n'a pas été déposé par l'editeur, pour générer des PDF. Dans tous les cas, un page de garde mentionnant des informations relatives au document publié sur OpenEdition est ajouté au PDF et à l'EPub.

Les outils utilisés :

La manipulation des PDF, en particulier des PDF fournis par les éditeurs, est parfois compliquée en raison des différentes versions, options et le manque de lisibilité du format PDF. Ca se traduit par des erreurs de traitement des PDF pour des raisons difficiles à identiifier. Il faut aussi prévoir que la génération de PDF nécessite des ressources système non négligeables et que le temps de génération peut être long (ce qui nous a conduit à développer une application qui génère les PDF au moment de la publication, plutôt lors de la requête de téléchargement du PDF)

Je précise qu'il y a un certain nombre d'alternative à Weasyprint, notamment paged.js https://www.pagedmedia.org/paged-js/, PrinceXML https://www.princexml.com/, FOP (basé sur sur XSL-FO et que nous avons aussi utilisé avant 2013 https://xmlgraphics.apache.org/fop/index.html)

En espérant que ces élements pourront vous aider, JF RIvière

ssonnet commented 5 years ago

Bonjour, Merci à vous deux pour vos réponses. Je vais creuser les différentes pistes. Cordialement. Sylvain Sonnet