Markdown to PDF

Convertissez vos documents instantanément avec style.

Référencez les images dans le markdown avec : @image:nom_fichier.png

Intégration Cursor MCP

Installez le serveur MCP pour utiliser md2pdf directement dans Cursor (IA)

Installer pour Linux Installer pour Windows (PowerShell) Installer pour Windows (CMD)

Instructions : Téléchargez le script adapté à votre système, puis exécutez-le dans un terminal pour installer automatiquement le serveur MCP et configurer Cursor.

Documentation API

Endpoint

POST /convert

Paramètres

Paramètre Type Requis Description
markdown string ✅ Oui Contenu Markdown à convertir en PDF
template string ❌ Non Template à utiliser : base (défaut: base)
style string ❌ Non Style à utiliser : default, modern ou classic (défaut: default)
cover boolean ❌ Non Inclure une page de garde (défaut: false)
sommaire boolean ❌ Non Inclure un sommaire automatique (défaut: false)
glossaire boolean ❌ Non Inclure un glossaire (défaut: false)
glossaire_data array ❌ Non Données du glossaire au format {"terme": "définition"}
pictures array (files) ❌ Non Images à uploader. Référencez-les dans le markdown avec @image:nom_fichier.png

Réponse

En cas de succès : Retourne un fichier PDF avec le header Content-Type: application/pdf

En cas d'erreur : Retourne un JSON avec le format suivant :

{
  "error": "PDF Generation Failed",
  "message": "Description de l'erreur"
}

Exemple avec cURL

# Sans images
curl -X POST http://127.0.0.1:8000/convert \
  -H "Content-Type: application/json" \
  -d '{
    "markdown": "# Titre\\n\\nContenu du document",
    "template": "base",
    "style": "default",
    "cover": true,
    "sommaire": true,
    "glossaire": false
  }' \
  --output document.pdf

# Avec images
curl -X POST http://127.0.0.1:8000/convert \
  -F "markdown=# Titre\\n\\n![Image](@image:mon-image.png)" \
  -F "pictures[]=@mon-image.png" \
  -F "template=base" \
  -F "style=default" \
  -F "cover=true" \
  --output document.pdf

Exemple avec JavaScript (Fetch)

fetch('/convert', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    markdown: '# Titre\\n\\nContenu du document',
    template: 'modern',
    style: 'default',
    cover: true,
    sommaire: true,
    glossaire: false
  })
})
.then(response => response.blob())
.then(blob => {
  const url = window.URL.createObjectURL(blob);
  const a = document.createElement('a');
  a.href = url;
  a.download = 'document.pdf';
  a.click();
});

Exemple avec Python (requests)

import requests

response = requests.post('http://127.0.0.1:8000/convert', json={
    'markdown': '# Titre\\n\\nContenu du document',
    'template': 'base',
    'style': 'default',
    'cover': True,
    'sommaire': True,
    'glossaire': False
})

if response.status_code == 200:
    with open('document.pdf', 'wb') as f:
        f.write(response.content)
else:
    print(response.json())

Métadonnées dans le Markdown

Vous pouvez inclure des métadonnées dans le markdown avec le format suivant :

@title: Mon Document
@author: Nom de l'auteur
@version: 1.0
@date_creation: 2024-01-01

# Contenu du document
...