Convertir un PDF en Markdown
Cette capacité transforme un PDF en Markdown propre : les titres redeviennent des titres, les listes des listes, les tableaux des tableaux. Là où l’extraction de texte brut aplatit tout, cette conversion préserve la structure du document, prête à publier dans un wiki, une documentation ou un système de gestion de contenu.
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.
La structure, pas seulement les mots
Un rapport n’est pas un bloc de texte : il a des titres, des sous-parties, des listes à puces, des tableaux. Récupérer ces éléments comme du texte plat oblige à tout remettre en forme à la main. La conversion en Markdown reconstruit la hiérarchie : chaque niveau de titre retrouve son rang, chaque liste ses puces, chaque tableau ses colonnes. Le document devient éditable et publiable, dans un format léger que lisent aussi bien les humains que les outils.
Une lecture par le regard, pas un simple copier
Pour restituer fidèlement la mise en forme, la conversion s’appuie sur un modèle de vision qui analyse la page comme le ferait un lecteur : il distingue un titre d’un paragraphe par sa taille et sa place, reconnaît une grille de tableau, suit l’ordre de lecture même sur une mise en page à colonnes. Cette approche va bien au-delà d’une extraction mécanique, d’où un tarif un peu plus élevé, justifié par la qualité du résultat structuré.
Le tarif, à la page
Le prix reflète le travail d’analyse : $0.010 par requête, plus $0.0575 par page, en dollars US. Une note de dix pages reste peu coûteuse et prévisible, sans abonnement. La capacité s’exécute depuis cette page pour un document ponctuel, et via l’API (alias /pdf/to-markdown) pour migrer une documentation entière — d’anciens PDF que l’on veut faire revivre dans un site ou un dépôt moderne.
Cas d’usage
Migrer une documentation
Studio Lumen SAS possède des années de notes en PDF qu’elle veut publier dans son wiki interne. La conversion en Markdown restitue titres et tableaux, si bien que chaque fiche se colle dans le wiki sans remise en forme laborieuse.
Republier un article
Sophie Nguyen a rédigé un dossier en PDF et souhaite le reprendre sur un site. Le Markdown lui rend une base propre, hiérarchisée, prête à intégrer dans son gestionnaire de contenu sans reconstruire chaque intertitre.
Alimenter un dépôt technique
Menuiserie Rousseau & Fils convertit ses cahiers des charges en Markdown pour les versionner aux côtés du code d’un projet. Les tableaux de spécifications restent lisibles, et l’historique des modifications devient traçable.
Questions fréquentes
Les tableaux sont-ils correctement reconstruits ?
Oui, c’est l’un des points forts de cette conversion : les grilles sont rendues en tableaux Markdown, avec leurs colonnes. Un tableau très complexe ou fusionné peut demander une petite retouche, mais l’essentiel de la structure est préservé.
En quoi est-ce mieux qu’une extraction de texte brut ?
L’extraction de texte donne un flux sans hiérarchie ; la conversion en Markdown conserve titres, listes et tableaux. Si vous voulez republier ou éditer le contenu, le Markdown vous épargne toute la remise en forme.
Le résultat est-il exploitable sur un PDF scanné ?
Le modèle de vision lit la page telle qu’elle apparaît, ce qui l’aide sur des documents visuellement riches. La qualité dépend toutefois de la netteté du scan : une numérisation propre donne un bien meilleur Markdown.
Pourquoi coûte-t-elle plus qu’une extraction simple ?
Parce qu’elle analyse la structure de chaque page, et non seulement ses mots. Le tarif est de $0.010 par requête plus $0.0575 par page, en dollars US, réglés à l’usage par PayPal, sans abonnement.
Quelle taille de document est acceptée ?
Jusqu’à 25 Mo et 200 pages par fichier. Pour une documentation volumineuse, un découpage préalable en sections reste possible avant conversion.
Mon document est-il gardé après la conversion ?
Non. Le PDF est traité de façon automatisée, chiffré en transit, puis effacé une fois le Markdown renvoyé. Aucun contenu n’est gardé ni relu par une personne.
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/to-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/to-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/to-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/to-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/to-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.to_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. |