File size: 6,964 Bytes
ffdff5d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
# 📚 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 !* 📚✨