URL: https://linuxfr.org/users/freejeff/journaux/pdf2web-presenter-transformer-une-presentation-pdf-en-diaporama-web Title: pdf2web-presenter : transformer une présentation PDF en diaporama web Authors: freejeff Date: 2025年04月18日T20:11:01+02:00 License: CC By-SA Tags: libreoffice, web et pdf Score: 14 # Présentation `pdf2web-presenter` est un outil en ligne de commande permettant de convertir un fichier PDF (typiquement issu de LibreOffice Impress, PowerPoint ou autre) en un diaporama web autonome, lisible dans un navigateur moderne. L’objectif est de pouvoir présenter un diaporama depuis un navigateur local ou distant, sans connexion réseau et sans dépendance propriétaire. Il répond ainsi à la problématique de portabilité de présentation (workshop, obligation d'utilisation de powerpoint, ...) et premet d'avoir une meilleur gestion des vidéos que le mode de présentation de libreoffice. Le projet est conçu pour rester minimaliste, autonome et transparent. # Cas d’usage On prépare une présentation dans un logiciel classique (LibreOffice Impress, Beamer, etc.) et on génère un PDF. Ce PDF peut contenir des vidéos embarquées (via LibreOffice par exemple). Avec `pdf2web-presenter`, une seule commande permet de produire une version HTML interactive, incluant les vidéos, et navigable via clavier, souris ou écran tactile : ```bash python3 main.py mon_fichier.pdf --codec=vp9 --scale-videos=70 ``` Cela génère un dossier contenant : - Un fichier HTML autonome - Une feuille de style embarquée - Les pages du PDF sous forme de fichiers SVG vectoriels - Les vidéos extraites, converties si nécessaire Le tout est statique, sans dépendance externe. On peut ouvrir le fichier HTML localement ou l’héberger (par exemple via un serveur web statique). # Pour les utilisateurs - Fonctionne avec Python 3 et `ffmpeg` - Nécessite soit `PyMuPDF`, soit `pdf2svg` pour extraire les pages - Produit une présentation lisible dans Firefox, Chromium, etc. - Aucune interface graphique : une commande suffit - Fonctionne entièrement hors ligne une fois généré # Navigation - flèches pour avancer/reculer début et fin - f : plein écran - m : vignettes de la présentation # Pour les utilisateurs avancés Techniquement, le script : - Utilise **PyMuPDF** ou **pdf2svg** pour générer un SVG par page, avec rendu vectoriel (avantageux pour le zoom, la qualité, etc.) - Parcourt les annotations RichMedia du PDF pour identifier les flux vidéo encapsulés - Utilise **ffmpeg** pour extraire et re-encoder les vidéos : - Codec sélectionnable : `h264`, `vp9`, `av1` - Re-encodage optionnel (par défaut, il est évité si le format est déjà compatible) - Redimensionnement possible avec `--scale-videos` - Génère une structure HTML simple avec [Swiper.js](https://swiperjs.com/), sans dépendance (tout est embarqué) L’objectif n’est pas de réimplémenter une solution complète de présentation (comme Reveal.js), mais de proposer un outil léger, reproductible et suffisamment souple pour des cas d’usage courants. # Embarqué dans une page web La présentation est redimensionnable, ce qui doit lui permettre d'être embarquée dans une iframe permettant ainsi une réutilisation des présentations sur un site web de manière conviviale. # Licence, lien et contributions Le code est disponible ici : [pdf2web-presenter](https://github.com/jeffwitz/pdf2web-presenter) Licence : MIT. Contributions et retours bienvenus. Code réalisé avec Gemini 2.5 pro et GPT 4.1

AltStyle によって変換されたページ (->オリジナル) /