Generer-un-PDF-de-faux-scans-en-HD-pour-un-Cube-Magic-the-Gathering

[Work in Progress] Petit script local en Python, pour générer un PDF prêt à être imprimé, de faux scans Version Français, en HD pour un Cube Magic the Gathering via MTGProxyPrinter, Scryfall et Moxfield. Le Challenge, c’est de générer à la volée de “faux scans” en français, pour les cartes qui n’ont pas de version française (avec MagicSetEditor) !

Ce README.md a été pré-généré par IA (Google’s Gemini, GitHub’s Copilot et OpenAI’s ChatGPT), et sera complété plus tard.


📌 Résumé

MTGFR-Render est un outil complet permettant de générer automatiquement :

  1. des images HD de cartes Magic en version française,
  2. avec exactement l’illustration utilisée dans votre deck Moxfield,
  3. en utilisant Scryfall FR + MTGRender,
  4. puis un PDF imprimable A4 au format 3×3 sans marges, prêt à être découpé comme un proxy cube propre.

L’objectif est de remplacer MTGPrint lorsque l’on veut :


🧩 Pourquoi ce projet existe ?

Le site MTGPrint.net est génial, mais il a 3 limitations majeures :

  1. Il n’autorise pas de sélectionner l’illustration exacte choisie dans Moxfield.
  2. Il ne propose pas les scans FR lorsque la qualité Scryfall FR est faible.
  3. Il ne permet pas de rendu HD alternatif (proxies propres) avec des outils comme MTGRender.

Ce projet résout totalement ces problèmes en générant des faux scans HD parfaits, basés sur :


🚀 Fonctionnalités principales

✔️ 1. Récupération automatique de decks Moxfield

✔️ 2. Récupération Scryfall FR

✔️ 3. Gestion complète des double-faced cards

✔️ 4. Rendu HD via MTGRender

Le rendu produit :

✔️ 5. PDF imprimable A4

✔️ 6. Système de cache local intelligent

Dans cache/ :

cache/
  cards/     -> cache JSON Scryfall
  arts/      -> illustrations HD
  renders/   -> images mtgrender prêtes

Permet :

✔️ 7. CLI avancée

Commandes :

Option Description
--no-cache ignore le cache (mais continue d’en écrire)
--refresh supprime uniquement les caches JSON + arts
--clean supprime entièrement le cache
--force-rerender force le recalcul de toutes les images
--no-pdf génère uniquement les PNG
--only-pdf ne génère le PDF qu’à partir des images existantes

📦 Installation

1. Cloner le projet / récupérer les fichiers

git clone <ton_repos> mtgfr-render
cd mtgfr-render

2. Créer un environnement Python

python3 -m venv venv
source venv/bin/activate

3. Installer les dépendances

pip install -r python_pip_requirements.txt

4. Installer MTGRender

(Depuis pip — pas besoin de git clone)

pip install mtgrender

C’est tout.


🔧 Utilisation

Générer images + PDF (mode par défaut)

python3 main.py render https://www.moxfield.com/decks/XXXXXX

Résultats :

output/
  <deckname>.pdf
  card1_0.png
  card1_1.png    # verso si DFC
  card2.png
  ...

Uniquement les images

python3 main.py render <url> --no-pdf

Uniquement le PDF (si images déjà présentes)

python3 main.py render <url> --only-pdf

Forcer un rerender complet (mtgrender)

python3 main.py render <url> --force-rerender

Purges de cache

Effacer uniquement JSON et illustrations :

python3 main.py render <url> --refresh

Effacer tout le cache :

python3 main.py render <url> --clean

🔍 Détails techniques complets

📥 1. API Moxfield

Le script appelle :

GET https://api2.moxfield.com/v2/decks/all/<deck_id>

Ces données incluent l’ID Scryfall exact utilisé dans l’interface Moxfield.


🌐 2. API Scryfall FR

Pour chaque carte :

https://api.scryfall.com/cards/<scry_id>?lang=fr

Champs utilisés :


🎨 3. Rendu via MTGRender

Commande typique :

mtgrender render \
  --name "Nom FR" \
  --mana-cost "{1}{W}" \
  --type-line "Créature — Humain" \
  --oracle-text "Texte Oracle en FR" \
  --art path/to/art.png \
  --output output/name.png

Support complet des double-faced cards :


📄 4. Génération PDF A4


🗄️ 5. Cache local

Le cache réduit drastiquement le temps de reconstruction du cube.

Indicateurs :

Élément Cache ? Quand rechargé ?
JSON Scryfall ✔️ jamais tant que fichier existe
Illustrations ✔️ idem
Renders MTGRender ✔️ sauf si --force-rerender

🎨 Reproductibilité & qualité


🛠️ Dépannage

« mtgrender: command not found »

Installe MTGRender dans le même environnement Python :

pip install mtgrender

Erreurs Scryfall

Le cache se remplit mal → :

python3 main.py render <url> --refresh

PDF vide

Vérifier qu’il y a bien des images dans output/.


📜 Licence

Projet libre d’utilisation personnelle non-commerciale (compatible avec la philosophie des proxies pour cubes privés).


❤️ Remerciements