evaluation-guidebook / app /scripts /README-PDF-BOOK.md
Clémentine
Init
ffdff5d
# 📚 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 !* 📚✨