Comment convertir un texte brut en PDF
L’entrée est du texte brut — un relevé, une transcription, un journal d’application — et la sortie un PDF paginé, lisible et prêt à joindre. Pas de mise en page à régler ni de logiciel à installer : une requête d’API suffit, facturée $0.002 par document.
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.
Du texte nu au document joignable
Beaucoup de systèmes produisent du texte brut : exports, journaux, transcriptions, sorties de scripts. Or ce format passe mal dès qu’il quitte l’écran d’un technicien — une pièce jointe .txt fait désordre dans un dossier, et certains destinataires ne l’ouvrent même pas. Cette capacité transforme le texte en PDF paginé, avec retours à la ligne respectés et accents intacts, encodage UTF-8 compris. Le contenu ne change pas d’un caractère ; seule sa présentation devient fréquentable.
Le plus sobre des convertisseurs du KIT
Ici, pas de moteur de rendu ni d’options infinies : le texte est composé tel quel, page après page, jusqu’à 200 pages par document. Cette sobriété a un prix — le plus bas possible : $0.002 la requête, quel que soit le nombre de pages produites. C’est le tarif qui permet d’archiver systématiquement, par script, des centaines de relevés ou de transcriptions sans que la facture devienne elle-même un sujet de réunion.
Ce qu’il ne fait pas, et pourquoi
Ce convertisseur ne met pas en gras, ne crée pas de colonnes, n’applique pas votre charte graphique : il est volontairement minimal. Si votre document exige des titres, des tableaux ou un habillage visuel, le KIT propose des capacités voisines — conversion depuis HTML ou depuis Markdown — qui prennent le relais. Choisir l’outil le plus simple qui suffit, c’est aussi payer le prix le plus bas qui suffit.
Cas d’usage
Transcriptions archivées
Après chaque réunion transcrite, le texte est converti en PDF et classé dans le dossier du projet. Six mois plus tard, on rouvre un document paginé et daté, pas un fichier texte anonyme.
Journaux et relevés techniques
Pour documenter un incident, un prestataire joint au rapport l’extrait de journal converti en PDF : le client peut le lire, l’imprimer et le citer page par page, sans éditeur de code.
Attestations simples
Nadia Benali rédige le texte d’une attestation sur l’honneur, le convertit en PDF, l’imprime pour signature puis la joint à son dossier CAF. Aucun traitement de texte n’a été ouvert.
Questions fréquentes
Les accents et caractères spéciaux sont-ils préservés ?
Oui. Le texte est traité en UTF-8 : accents, cédilles, ligatures comme « œ » et symboles courants ressortent tels quels dans le PDF.
Puis-je choisir la police ou ajouter de la mise en forme ?
Non, et c’est assumé : cette capacité compose du texte brut, sans habillage. Pour un document mis en forme, utilisez la conversion depuis HTML ou depuis Markdown, pensées pour cela.
Pourquoi est-ce si peu cher ?
Parce que le traitement est léger : $0.002 la requête, sans supplément par page. Chaque capacité du KIT affiche un prix aligné sur ce qu’elle coûte réellement à exécuter.
Mon texte est-il conservé après la conversion ?
Il sert à produire le PDF que vous récupérez, dans un traitement automatisé et chiffré en transit. Pas de compte, pas de profil, pas de réutilisation de vos contenus.
Quelle est la limite de taille ?
25 Mo de texte en entrée — c’est énorme pour du texte brut — et 200 pages en sortie. Au-delà, découpez l’envoi en plusieurs requêtes.
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-text \
-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-text", {
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-text",
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-text", 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-text", 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_text",
"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é. |