| # 📚 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 |
| <!-- ✅ Bon --> |
| <img src="/images/photo.jpg"> |
| |
| <!-- ❌ Mauvais --> |
| <img src="images/photo.jpg"> |
| ``` |
|
|
| ### 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 !* 📚✨ |
|
|
|
|