# 📚 Export PDF Livre - Guide Complet SystĂšme de gĂ©nĂ©ration de PDF professionnel avec mise en page type livre pour votre template d'article scientifique. ## 🎯 Objectif CrĂ©er des PDFs de qualitĂ© professionnelle avec : - Typographie soignĂ©e (Georgia, justification, cĂ©sure) - Marges asymĂ©triques pour reliure - Running headers avec titres de chapitres - NumĂ©rotation de pages gauche/droite - Gestion veuves et orphelines - Style livre acadĂ©mique/Ă©ditorial ## 📩 Ce qui a Ă©tĂ© créé ### Fichiers créés ``` app/ ├── scripts/ │ ├── export-pdf-book.mjs ← Version avec Paged.js (avancĂ©e, en cours) │ ├── export-pdf-book-simple.mjs ← Version simple (RECOMMANDÉE ✅) │ └── EXPORT-PDF-BOOK.md ← Documentation dĂ©taillĂ©e └── src/ └── styles/ └── _print-book.css ← Styles CSS Paged Media ``` ### Commandes npm ajoutĂ©es ```json { "export:pdf:book": "Version Paged.js (expĂ©rimentale)", "export:pdf:book:simple": "Version simple (stable ✅)" } ``` ## 🚀 Utilisation ### Commande recommandĂ©e ```bash npm run export:pdf:book:simple ``` Le PDF sera gĂ©nĂ©rĂ© dans : - `dist/article-book.pdf` - `public/article-book.pdf` (copie automatique) ### Options disponibles ```bash # ThĂšme sombre npm run export:pdf:book:simple -- --theme=dark # Format Letter npm run export:pdf:book:simple -- --format=Letter # Nom personnalisĂ© npm run export:pdf:book:simple -- --filename=ma-these # Combinaison npm run export:pdf:book:simple -- --theme=light --format=A4 --filename=livre ``` ## 🎹 CaractĂ©ristiques du style livre ### Marges ``` Pages droites (recto) │ Pages gauches (verso) │ 20mm ──┐ │ ┌── 25mm │ │ │ ┌───────┮──────┐ │ ┌──────┮───────┐ │ │ │ │ │ │ CONTENU │ │ │ CONTENU │ │ │ │ │ │ └──────────────┘ │ └──────────────┘ 25mm │ 20mm (reliure) │ (reliure) ``` ### Typographie - **Police** : Georgia, Palatino (serif) - **Taille** : 11pt - **Interlignage** : 1.6 - **Alignement** : JustifiĂ© avec cĂ©sure automatique - **Retrait** : 5mm pour les paragraphes suivants ### Titres ```css H2 (Chapitres) → 18pt, numĂ©rotĂ©s (1. 2. 3.) H3 (Sections) → 14pt, numĂ©rotĂ©s (1.1, 1.2) H4 (Sous-sections) → 12pt ``` ### Compteurs automatiques - Chapitres : 1, 2, 3... - Sections : 1.1, 1.2, 2.1... - Figures : Figure 1.1, Figure 1.2... - Tableaux : idem ## 📐 Configuration CSS Le fichier `_print-book.css` contient tous les styles. Vous pouvez personnaliser : ### Changer les polices ```css body { font-family: "Baskerville", "Georgia", serif; font-size: 12pt; } ``` ### Ajuster les marges ```css @page { margin-top: 25mm; margin-bottom: 30mm; } @page :left { margin-left: 18mm; margin-right: 30mm; } ``` ### Personnaliser les headers ```css @page :left { @top-left { content: string(chapter-title); font-size: 10pt; color: #333; } } ``` ### Forcer un saut de page Dans votre MDX : ```mdx ## Chapitre 1 Contenu... --- ## Chapitre 2 (nouvelle page) ``` Ou avec CSS : ```css .new-chapter { break-before: page; } ``` ## 🆚 Comparaison des versions | FonctionnalitĂ© | Simple | Paged.js | |----------------|--------|----------| | **StabilitĂ©** | ✅ Excellente | ⚠ En cours | | **Vitesse** | ✅ Rapide | ⏱ Plus lent | | **Setup** | ✅ Aucun | 📩 Paged.js requis | | **Marges reliure** | ✅ | ✅ | | **Running headers** | ⚠ LimitĂ© | ✅ AvancĂ© | | **Notes de bas de page** | ❌ | ✅ | | **Table matiĂšres auto** | ❌ | ✅ | | **QualitĂ© typo** | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ### Quand utiliser quelle version ? **Version Simple** (recommandĂ©e) : - ✅ Pour la plupart des cas d'usage - ✅ StabilitĂ© prioritaire - ✅ GĂ©nĂ©ration rapide - ✅ RĂ©sultats prĂ©visibles **Version Paged.js** (expĂ©rimentale) : - 🔬 Pour tester les fonctionnalitĂ©s avancĂ©es - 📚 Si vous avez besoin de notes de bas de page - 📖 Pour des tables des matiĂšres gĂ©nĂ©rĂ©es automatiquement - ⚠ NĂ©cessite plus de tests ## 🐛 DĂ©pannage ### Le PDF est vide ```bash # Reconstruire d'abord npm run build npm run export:pdf:book:simple ``` ### Les images manquent VĂ©rifiez que les chemins sont absolus : ```html ``` ### Les graphiques sont coupĂ©s Dans `_print-book.css`, ajoutez : ```css .your-chart { max-height: 200mm; break-inside: avoid; } ``` ### Port 8080 dĂ©jĂ  utilisĂ© ```bash PREVIEW_PORT=8081 npm run export:pdf:book:simple ``` ## 🎓 Prochaines Ă©tapes ### AmĂ©liorations possibles 1. **Finaliser Paged.js** pour les fonctionnalitĂ©s avancĂ©es 2. **Table des matiĂšres automatique** avec numĂ©ros de page 3. **Index** gĂ©nĂ©rĂ© automatiquement 4. **RĂ©fĂ©rences croisĂ©es** (Voir Figure 2.3, etc.) 5. **Templates prĂ©dĂ©finis** : - ThĂšse acadĂ©mique - Rapport technique - Livre scientifique - Documentation ### Contribuer Les styles sont dans `_print-book.css`. Pour proposer des amĂ©liorations : 1. Testez avec votre contenu 2. Modifiez le CSS 3. GĂ©nĂ©rez le PDF 4. Partagez vos modifications ! ## 📚 Ressources ### CSS Paged Media - [W3C Spec](https://www.w3.org/TR/css-page-3/) - [CSS Tricks Guide](https://css-tricks.com/css-paged-media-guide/) - [Print CSS Documentation](https://www.smashingmagazine.com/2015/01/designing-for-print-with-css/) ### Paged.js - [Documentation](https://pagedjs.org/documentation/) - [Exemples](https://pagedjs.org/examples/) - [W3C Paged Media](https://www.w3.org/TR/css-page-3/) ### Typographie de livre - [Butterick's Practical Typography](https://practicaltypography.com/) - [The Elements of Typographic Style](http://webtypography.net/) ## 💡 Cas d'usage Ce systĂšme est idĂ©al pour : - 📘 **ThĂšses de doctorat** - 📗 **MĂ©moires de master** - 📕 **Rapports de recherche** - 📙 **Documentation technique** - 📓 **Livres blancs** - 📔 **Livres auto-publiĂ©s** - 📚 **Collections d'articles** ## 🎉 RĂ©sultat Avec ce systĂšme, vous obtenez : ✅ **PDF prĂȘt pour l'impression** - Marges correctes pour reliure - Typographie professionnelle - Mise en page cohĂ©rente ✅ **QualitĂ© Ă©ditoriale** - NumĂ©rotation automatique - Gestion des veuves/orphelines - CĂ©sure propre ✅ **Workflow moderne** - Écriture en MDX - Build automatisĂ© - Un seul fichier source --- **Créé avec ❀ pour le Research Article Template** *Profitez de votre nouveau systĂšme d'export PDF livre !* 📚✹