Markdown en PDF
Le Markdown est parfait pour écrire, moins pour livrer. Cette capacité convertit vos fichiers .md en PDF proprement composés : titres hiérarchisés, listes, tableaux et blocs de code. Développeurs et rédacteurs techniques l’utilisent pour transformer notes, documentation ou comptes rendus en documents présentables.
Exécuter en ligne
Exécutez cette tâche sur nos serveurs, avec votre compte. Les outils gratuits tournent dans votre navigateur ; celui-ci est facturé sur votre solde KIT au prix affiché ci-dessus.
Écrire en Markdown, livrer en PDF
Le Markdown a gagné parce qu’il laisse écrire sans se battre avec la mise en forme : un fichier texte, versionnable, lisible dans n’importe quel éditeur. Mais le destinataire final — client, direction, administration — attend rarement un fichier .md. Cette capacité fait le pont : la source reste en Markdown, sous contrôle de version, et chaque livraison produit un PDF net que tout le monde sait ouvrir, annoter et imprimer. Vous n’entretenez qu’un seul document, le bon.
Les éléments restitués
La conversion prend en charge les constructions courantes du Markdown : titres et sous-titres hiérarchisés, listes à puces et numérotées, tableaux, liens, emphase, citations et blocs de code avec leur police à chasse fixe. Le rendu passe par un moteur de navigateur, ce qui garantit une composition régulière — les tableaux restent alignés, le code reste lisible. Un document de travail brut devient un livrable dont la forme ne trahit pas le fond.
Intégration, limites et prix
Vous envoyez le Markdown à l’API (alias /pdf/from-markdown), vous recevez un identifiant de tâche, vous récupérez le PDF : le tout s’insère en quelques lignes dans un script de build ou une chaîne de publication. Chaque document peut atteindre 200 pages et 25 Mo. Le tarif est de $0.040 par requête, plus $0.001 par page — une documentation de vingt pages revient à $0.06, en dollars US, sans abonnement.
Cas d’usage
Documentation livrée au client
En fin de mission, un développeur indépendant convertit la documentation du projet — rédigée en Markdown dans le dépôt — en un PDF daté remis au client. La source reste versionnée, le livrable est figé.
Comptes rendus de réunion
Julien Lefèvre rédige ses comptes rendus en Markdown pendant la réunion, puis les convertit en PDF avant diffusion. Les participants reçoivent un document propre, paginé, identique pour tous.
Annexes techniques d’un devis
Studio Lumen SAS décrit ses spécifications techniques en Markdown, puis les joint en PDF à chaque devis. Quand la spécification évolue, seule la source change — le PDF se régénère d’un appel d’API.
Questions fréquentes
Quels éléments Markdown sont pris en charge ?
Les constructions courantes : titres, listes, tableaux, liens, emphase, citations et blocs de code. Si votre fichier s’affiche correctement dans un aperçu Markdown classique, il se convertira proprement.
Puis-je convertir plusieurs fichiers .md en un seul PDF ?
Chaque tâche convertit un document. Concaténez vos fichiers avant l’envoi, ou convertissez-les séparément puis assemblez les PDF — le KIT dispose d’une capacité de fusion pour cela.
Combien coûte une conversion ?
$0.040 par requête, plus $0.001 par page générée : un guide de vingt pages revient à $0.06. Les prix sont affichés en dollars US, payables par PayPal, sans compte ni engagement.
Quelqu’un lit-il le contenu de mes fichiers ?
Non. Le traitement est entièrement automatisé et l’échange est chiffré en transit. Votre Markdown sert à produire le PDF que vous récupérez, rien d’autre.
Y a-t-il un abonnement ou un quota mensuel ?
Ni l’un ni l’autre. Vous payez à l’usage, requête par requête, et vous arrêtez quand vous voulez — il n’y a même pas de compte à résilier.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/pdf/from-markdown \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf"}'const res = await fetch("https://api.kit.forhosting.com/pdf/from-markdown", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/from-markdown",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/from-markdown", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pdf":"https://ejemplo.com/documento.pdf"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/from-markdown", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"pdf": "https://ejemplo.com/documento.pdf"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.from_markdown",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_mb | 25 |
max_pages | 200 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
413 | input_too_large | Entrée trop volumineuse : consultez la limite de taille de cette capacité. |
422 | task_failed | La tâche a échoué : elle ne vous est pas facturée. |