ForHosting KIT · Documents et PDF

Générez une table des matières PDF depuis les signets

Transformez le plan des signets d’un PDF en une page de table des matières homogène, sans aligner manuellement les titres et les numéros.

● BetaGratuit · dans votre navigateur
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt

Fournissez les signets dans l’ordre du document, avec leur titre, leur page de destination comptée à partir de un et, si nécessaire, leur niveau hiérarchique. Le générateur conserve cette hiérarchie par des retraits, ajoute des pointillés lisibles et renvoie les entrées structurées ainsi que le texte prêt à l’emploi. Un plan vide est refusé afin de révéler toute étape antérieure défaillante.

Préparez le plan des signets

Commencez par le plan déjà extrait du PDF. Chaque entrée doit comporter un titre et un numéro de page compté à partir de un, et respecter l’ordre de lecture du document. Ajoutez un niveau lorsque le signet dépend d’un chapitre ou d’une autre entrée parente : le niveau zéro correspond à une destination principale, le niveau un ajoute un retrait et les niveaux supérieurs approfondissent ce retrait. Le générateur n’analyse ni ne modifie les octets du PDF, ne déduit pas les signets depuis le texte et ne réorganise pas le plan. Cette séparation garantit un résultat prévisible et rend les problèmes de données visibles. Les espaces répétés et les sauts de ligne dans les titres sont normalisés automatiquement. Les titres doivent contenir du texte visible, les pages être des entiers positifs et les niveaux rester dans la plage documentée. Un plan vide déclenche une erreur de saisie plutôt qu’une page blanche.

Comprenez la page produite

Le résultat comprend un en-tête, un tableau normalisé d’entrées, leur nombre et un champ de page contenant le texte mis en forme. Chaque ligne commence par le retrait correspondant au niveau du signet, se poursuit par le titre nettoyé et se termine par le numéro de page. Des pointillés occupent l’espace intermédiaire pour faciliter le repérage. Le formateur vise une largeur stable, mais ne tronque jamais un titre long uniquement pour préserver l’alignement ; il conserve l’intitulé complet et insère un séparateur minimal. Les noms de chapitres restent ainsi significatifs et le résultat demeure déterministe dans le navigateur comme dans l’API. Les entrées structurées reprennent le titre, la page, le niveau et la ligne finale : vous pouvez donc employer directement la page fournie ou appliquer ensuite votre propre typographie. L’en-tête par défaut est « Table des matières », mais vous pouvez le remplacer par tout libellé non vide tenant sur une seule ligne.

Intégrez-la à votre flux PDF

Utilisez le texte de page renvoyé comme source pour l’étape qui crée ou insère une page physique dans le PDF. Cette capacité se concentre volontairement sur le rendu du plan : elle ne recalcule pas les destinations après insertion, ne choisit pas les polices, ne répartit pas une longue liste sur plusieurs pages et ne modifie pas le fichier source. Si l’ajout d’une page décale les destinations, corrigez les valeurs avant de produire la table définitive ou pendant l’assemblage. Cette séparation évite l’erreur courante d’une page provoquée par l’ajout de pages liminaires après l’enregistrement des signets. Pour une publication reproductible, extrayez ou entretenez le plan, validez les pages de destination, générez la table puis transmettez le résultat à l’étape de composition. La logique est déterministe, sans réseau ni état conservé, et convient aux vérifications dans le navigateur, aux pipelines, aux portails documentaires et aux tests de régression.

Créez une table depuis des signets préparés

Convertissez un plan de chapitres soigneusement tenu en texte aligné avant d’assembler le PDF final.

Automatisez la publication documentaire

Produisez une représentation prévisible de la table à chaque compilation lorsque les destinations changent.

Validez les plans extraits

Refusez immédiatement un résultat vide plutôt que de publier discrètement une table des matières blanche.

Quel est le tarif ?

L’API coûte $0.002 par requête ; la version pour navigateur peut s’exécuter localement sur cette page.

Cette capacité lit-elle le fichier PDF ?

Non. Elle reçoit un plan de signets déjà disponible et met ces données en forme comme table des matières.

Que se passe-t-il si le plan est vide ?

La requête échoue avec une erreur de saisie afin qu’une absence de signets ne produise pas une page trompeuse.

Comment représenter la hiérarchie ?

Attribuez à chaque entrée un niveau partant de zéro. Chaque niveau supérieur ajoute deux espaces de retrait.

Les titres longs sont-ils tronqués ?

Non. Le titre normalisé complet est conservé, avec au moins trois points avant le numéro de page.

L’insertion met-elle les numéros à jour ?

Non. Fournissez les destinations finales ou ajustez-les lors de l’étape ultérieure d’assemblage du PDF.

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.

POSThttps://api.kit.forhosting.com/pdf/table-of-contents

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é.

curl -X POST https://api.kit.forhosting.com/pdf/table-of-contents \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"outline":[{"title":"Introduction","page":1,"level":0},{"title":"Installation","page":4,"level":1}]}'
{
  "outline": [
    {
      "title": "Introduction",
      "page": 1,
      "level": 0
    },
    {
      "title": "Installation",
      "page": 4,
      "level": 1
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "pdf.table_of_contents",
  "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.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

max_items500
HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Consulter la documentation complète du KIT →