Comments (3)
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.
from lodel.
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 :
- Weasyprint (Python) pour la conversion html->PDF https://weasyprint.org/
- Ghostscript pour la compression des PDF
- PyPDF2 pour la concaténation PDF + page de garde https://pythonhosted.org/PyPDF2/ (que nous allons remplacer, probablement par GhostScript ou pdftk)
- PHPePub (lib PHP) pour la génération de ePubs : https://www.phpclasses.org/package/6115
- Epubcheck pour la validation des ePub : http://code.google.com/p/epubcheck/
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
from lodel.
Bonjour,
Merci à vous deux pour vos réponses. Je vais creuser les différentes pistes.
Cordialement.
Sylvain Sonnet
from lodel.
Related Issues (20)
- Modification du modèle éditorial : implications pour future revue OpenEdition HOT 3
- Pb après upgrade OEJ.EM 1.0.x => 1.0.2 HOT 6
- Aperçu des liens / Métadonnées d'un site Lodel HOT 5
- Chargement des images d'accroche impossible avec Chrome HOT 1
- Facebook Icon HOT 1
- Mise à jour de v1.0.0 vers v1.0.1 en mode "singledatabase" HOT 1
- Comment configurer proprement les différents `$cfg['sharedir']` etc. ?
- Quand je me logue sur `/lodeladmin/`, le cookie est créé pour le chemin `/lodel/` HOT 1
- Mariadb 10.5 HOT 2
- Ne plus distribuer les templates obsolètes HOT 1
- XML non valide après import Word HOT 1
- Le filtre `vignette()` produit des images plus lourdes que l'original HOT 1
- Comment mettre à jour un modèle éditorial.
- Impossible de charger les documents annexes et les vignettes
- Ajout de la langue berbère
- Lodel & MathJax HOT 2
- Ajout de la langue bretonne HOT 2
- Warning PHP depuis la dernière mise à jour HOT 5
- Pb caractères spéciaux sur moteur de recherche
- Faille XSS sur la page de connexion HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lodel.