transformers / app /scripts /README-PDF-BOOK.md
tfrere's picture
tfrere HF Staff
Clean repository - remove missing LFS files
6afedde
|
raw
history blame
6.96 kB

📚 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

{
  "export:pdf:book": "Version Paged.js (expérimentale)",
  "export:pdf:book:simple": "Version simple (stable ✅)"
}

🚀 Utilisation

Commande recommandée

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

# 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

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

body {
  font-family: "Baskerville", "Georgia", serif;
  font-size: 12pt;
}

Ajuster les marges

@page {
  margin-top: 25mm;
  margin-bottom: 30mm;
}

@page :left {
  margin-left: 18mm;
  margin-right: 30mm;
}

Personnaliser les headers

@page :left {
  @top-left {
    content: string(chapter-title);
    font-size: 10pt;
    color: #333;
  }
}

Forcer un saut de page

Dans votre MDX :

## Chapitre 1

Contenu...

---

## Chapitre 2 (nouvelle page)

Ou avec 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

# Reconstruire d'abord
npm run build
npm run export:pdf:book:simple

Les images manquent

Vérifiez que les chemins sont absolus :

<!-- ✅ Bon -->
<img src="/images/photo.jpg">

<!-- ❌ Mauvais -->
<img src="/spaces/nanochat-students/transformers/resolve/main/app/scripts/images/photo.jpg">

Les graphiques sont coupés

Dans _print-book.css, ajoutez :

.your-chart {
  max-height: 200mm;
  break-inside: avoid;
}

Port 8080 déjà utilisé

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

Paged.js

Typographie de livre

💡 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 ! 📚✨