build-pdf.py
39 lignes · 1190 octets
#!/usr/bin/env python3 """ Génère un PDF par langue à partir des fichiers book/<lang>/print.html. Installation (une fois) : pip install weasyprint Usage : ./scripts/build-pdf.py # toutes les langues ./scripts/build-pdf.py fr en # langues spécifiques OUT_DIR=./dist ./scripts/build-pdf.py # dossier de sortie custom Sortie par défaut : book/<lang>/documentation.pdf """ import os import sys from pathlib import Path from weasyprint import HTML ROOT = Path(__file__).resolve().parent.parent BOOK = ROOT / "book" LANGS = sys.argv[1:] or ["fr", "en", "de", "es", "pt", "it"] OUT_DIR = Path(os.environ["OUT_DIR"]) if os.environ.get("OUT_DIR") else ROOT / "pdf" OUT_DIR.mkdir(parents=True, exist_ok=True) for lang in LANGS: src = BOOK / lang / "print.html" if not src.exists(): print(f"✗ {src} introuvable — lance build-all-langs.sh d'abord", file=sys.stderr) continue out = OUT_DIR / f"documentation-{lang}.pdf" print(f"→ {lang} : {src} → {out}") HTML(filename=str(src), base_url=str(src.parent)).write_pdf(str(out)) print(f" ✓ {out.stat().st_size // 1024} KB") print("\n✓ Terminé.")
GitRust