Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Génération automatique de PDF #101

Open
ssonnet opened this issue Feb 13, 2019 · 3 comments
Open

Génération automatique de PDF #101

ssonnet opened this issue Feb 13, 2019 · 3 comments

Comments

@ssonnet
Copy link

ssonnet commented Feb 13, 2019

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
Copy link

SylDanh commented Mar 11, 2019

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
Copy link
Contributor

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
Copy link
Author

ssonnet commented Mar 11, 2019

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants