How to Add Table of Contents

This article was translated from English: Does it need improvement?
Translated
View the article in English

Un sommaire (TOC) est comme une feuille de route qui aide les lecteurs à naviguer dans le contenu du document PDF. Il apparaît généralement au début et liste les sections principales ou chapitres du PDF, ainsi que les numéros de page où chaque section commence. Cela permet aux lecteurs de trouver rapidement et d'accéder à des parties spécifiques du document, facilitant ainsi l'accès aux informations dont ils ont besoin.

IronPDF fournit une fonctionnalité pour créer un sommaire avec des hyperliens vers les éléments 'h1', 'h2', 'h3', 'h4', 'h5' et 'h6'. Le style par défaut de ce sommaire n'entrera pas en conflit avec d'autres styles dans le contenu HTML.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. Copy and run this code snippet.

    new ChromePdfRenderer { RenderingOptions = { CreateOutlineMaps = true, OutlineMapsFormat = TableOfContentsTypes.WithPageNumbers, FirstPageNumber = 1 } }
        .RenderHtmlFileAsPdf("myDocument.html")
        .SaveAs("withToc.pdf");
  3. Deploy to test on your live environment

    Start using IronPDF in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

Flux de travail minimal (5 étapes)

  1. Téléchargez la bibliothèque C# pour ajouter un sommaire
  2. Préparez le HTML à convertir en PDF
  3. Définissez la propriété TableOfContents pour activer le sommaire
  4. Personnalisez le sommaire en choisissant d'afficher ou non les numéros de page
  5. Optimisez le placement du sommaire sur le PDF de sortie


Exemple d'ajout de sommaire

Utilisez la propriété TableOfContents pour activer la création d'un sommaire dans le document PDF de sortie. Cette propriété peut être assignée à l'un des trois TableOfContentsTypes, qui sont décrits comme suit :

  • Aucun : Ne pas créer de sommaire
  • Basique : Créer un sommaire sans numéros de page
  • AvecNumérosDePage : Créer un sommaire AVEC numéros de page

Cette fonctionnalité utilise JavaScript pour construire le sommaire; par conséquent, le moteur doit avoir JavaScript activé. Pour mieux comprendre cette fonctionnalité, vous pouvez télécharger le fichier HTML exemple ci-dessous :

Code

:path=/static-assets/pdf/content-code-examples/how-to/table-of-contents.cs
using IronPdf;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Configure render options
renderer.RenderingOptions = new ChromePdfRenderOptions
{
    // Enable table of content feature
    TableOfContents = TableOfContentsTypes.WithPageNumbers,
};

PdfDocument pdf = renderer.RenderHtmlFileAsPdf("tableOfContent.html");

pdf.SaveAs("tableOfContents.pdf");
Imports IronPdf

' Instantiate Renderer
Private renderer As New ChromePdfRenderer()

' Configure render options
renderer.RenderingOptions = New ChromePdfRenderOptions With {.TableOfContents = TableOfContentsTypes.WithPageNumbers}

Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("tableOfContent.html")

pdf.SaveAs("tableOfContents.pdf")
$vbLabelText   $csharpLabel

PDF de sortie

Le sommaire sera créé avec des hyperliens vers chacun des 'h1', 'h2', 'h3', 'h4', 'h5' et 'h6'.

Veuillez noterL'utilisation de la méthode Merge sur le document cassera les hyperliens du sommaire.


Placement du sommaire sur le PDF

  1. Assurez-vous que le document HTML possède les balises d'en-tête appropriées (h1 jusqu'à h6).
  2. Optionnellement insérez un div à l'endroit où vous souhaitez que le sommaire apparaisse. Si le div ci-dessous n'est pas fourni, IronPDF insérera le sommaire au début.
<div id="ironpdf-toc"></div>
<div id="ironpdf-toc"></div>
HTML
  1. Dans les options de rendu, choisissez de rendre le sommaire avec ou sans numéros de page.

Personnalisation du sommaire

Le sommaire peut être personnalisé à l'aide de CSS en ciblant les différents sélecteurs CSS qui définissent le style du sommaire.

De plus, les modifications de style peuvent être effectuées en utilisant la propriété CustomCssUrl. Commençons par télécharger un fichier CSS contenant le style original du sommaire ci-dessous.

AvertissementActuellement, il est déconseillé de remplacer les propriétés page-break-before et page-break-after lors de la personnalisation du sommaire, car cela entraînera des erreurs de calcul des numéros de page. L'implémentation actuelle suppose que le sommaire doit se trouver sur des pages séparées du reste du contenu du document.
### Styliser les en-têtes

:path=/static-assets/pdf/content-code-examples/how-to/table-of-contents-overwrite-styling.cs
using IronPdf;
using System.IO;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Configure render options
renderer.RenderingOptions = new ChromePdfRenderOptions
{
    // Enable table of content feature
    TableOfContents = TableOfContentsTypes.WithPageNumbers,
    CustomCssUrl = "./custom.css"
};

// Read HTML text from file
string html = File.ReadAllText("tableOfContent.html");
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

pdf.SaveAs("tableOfContents.pdf");
Imports IronPdf
Imports System.IO

' Instantiate Renderer
Private renderer As New ChromePdfRenderer()

' Configure render options
renderer.RenderingOptions = New ChromePdfRenderOptions With {
	.TableOfContents = TableOfContentsTypes.WithPageNumbers,
	.CustomCssUrl = "./custom.css"
}

' Read HTML text from file
Dim html As String = File.ReadAllText("tableOfContent.html")
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

pdf.SaveAs("tableOfContents.pdf")
$vbLabelText   $csharpLabel

Utilisez le sélecteur '#ironpdf-toc ul li.h1' pour appliquer un style différent à l'en-tête H1 dans le sommaire.

Remplacez 'h1' par 'h2' jusqu'à 'h6' pour modifier le style de chaque en-tête respectif.

class="content-img-align-center">

class="center-image-wrapper"> ![Styliser les en-têtes](/static-assets/pdf/how-to/table-of-contents/style-headers.webp)

 #ironpdf-toc ul li.h1 {
    font-style: italic;
    font-weight: bold;
 }

Famille de polices

Avec les deux sélecteurs '#ironpdf-toc li .title' et '#ironpdf-toc li .page', il est possible de remplacer la famille de polices du sommaire.

Pour ce faire, nous pouvons utiliser une police cursive pour le titre et utiliser l'attribut @font-face pour utiliser la police personnalisée 'Lemon' conçue par Eduardo Tunni. - Téléchargez la police Lemon

 #ironpdf-toc li .title {
    order: 1;
    font-family: cursive;
 }

 @font-face {
    font-family: 'lemon';
    src: url('Lemon-Regular.ttf')
 }

 #ironpdf-toc li .page {
    order: 3;
    font-family: 'lemon', sans-serif;
 }

Indentation

L'indentation peut être contrôlée en utilisant le sélecteur ':root'.

Cette valeur détermine la quantité d'indentation pour chaque niveau d'en-tête (h1, h2, ...) dans le sommaire. Elle peut être augmentée en fonction des besoins, ou il peut n'y avoir aucune indentation avec une valeur de 0.

class="content-img-align-center">

class="center-image-wrapper"> ![Définir une indentation personnalisée](/static-assets/pdf/how-to/table-of-contents/indentation.webp)

:root {
    --indent-length: 25px;
}

Ligne pointillée

Pour supprimer les lignes pointillées entre le titre de l'en-tête et le numéro de page, modifiez l'image de fond du sélecteur ::after.

Dans le style d'origine, le deuxième paramètre est "currentcolor 1px". Changez-le en "transparent 1px" pour supprimer les points. Il est important de spécifier également d'autres attributs car, dans ce sélecteur, le nouveau style remplacera complètement l'ancien style plutôt que de simplement s'y ajouter.

class="content-img-align-center">

class="center-image-wrapper"> ![Supprimer les points](/static-assets/pdf/how-to/table-of-contents/dot-line.webp)

 #ironpdf-toc li::after {
    background-image: radial-gradient(circle, transparent 1px, transparent 1.5px);
    background-position: bottom;
    background-size: 1ex 4.5px;
    background-repeat: space no-repeat;
    content: "";
    flex-grow: 1;
    height: 1em;
    order: 2;
 }
Remove dots

Prêt à voir ce que vous pouvez faire d'autre ? Consultez notre page de tutoriels ici : Convertir les PDFs

Questions Fréquemment Posées

Comment puis-je ajouter une table des matières à un PDF en .NET C# ?

Vous pouvez utiliser IronPDF pour ajouter une table des matières à un PDF en définissant la propriété TableOfContents dans vos paramètres de génération de PDF. Cela créera automatiquement un index de navigation lié aux éléments d'en-tête dans votre document PDF.

Quelles options sont disponibles pour la table des matières dans IronPDF ?

IronPDF propose trois options pour la table des matières : Aucune (pas de TOC), Basique (TOC sans numéros de pages), et AvecNumérosDePages (TOC qui inclut des numéros de pages).

Comment puis-je m'assurer que la table des matières apparaît à un emplacement spécifique dans le PDF ?

Pour placer la table des matières à un emplacement spécifique, insérez un div avec l'ID 'ironpdf-toc' dans votre document HTML. IronPDF placera la TOC à cet endroit.

Puis-je styliser la table des matières en utilisant CSS ?

Oui, IronPDF vous permet de styliser la table des matières en utilisant CSS. Vous pouvez cibler des éléments spécifiques de la TOC pour modifier leur apparence et utiliser une URL CSS personnalisée pour un style supplémentaire.

Est-il possible de changer la police de la table des matières dans un PDF ?

Vous pouvez changer la police de la table des matières en utilisant les sélecteurs CSS #ironpdf-toc li .title et #ironpdf-toc li .page. Les polices personnalisées peuvent être implémentées en utilisant l'attribut @font-face.

Comment puis-je éviter que les hyperliens de la TOC ne soient cassés lors de la fusion de documents PDF ?

Lors de l'utilisation de la méthode Merge après la création d'une TOC, assurez-vous de mettre à jour ou de régénérer la TOC pour maintenir les hyperliens fonctionnels, car la fusion peut les perturber.

De quoi dois-je me méfier lors du stylage de la table des matières concernant les sauts de page ?

Évitez de modifier les propriétés page-break-before et page-break-after dans votre CSS, car cela peut interférer avec le calcul des numéros de page dans la TOC.

Comment puis-je supprimer les lignes pointillées entre les titres et les numéros de page dans la TOC ?

Pour supprimer les lignes pointillées entre les titres et les numéros de page, modifiez le CSS du sélecteur '::after' des éléments TOC, en définissant la propriété background-image sur 'transparent 1px'.

Comment puis-je contrôler l'indentation des en-têtes dans la table des matières ?

Contrôlez l'indentation des en-têtes dans la TOC en utilisant le sélecteur CSS ':root', qui vous permet de définir le niveau d'indentation pour chaque en-tête.

Quel est le rôle d'une table des matières dans un document PDF ?

Une table des matières sert d'outil de navigation dans un document PDF, listant les sections ou chapitres et leurs numéros de page pour aider les utilisateurs à localiser rapidement un contenu spécifique.

IronPDF est-il entièrement compatible avec .NET 10 lors de l'ajout d'une table des matières, et existe-t-il des considérations particulières ?

Oui, IronPDF est entièrement compatible avec .NET 10, tout comme avec les versions précédentes de .NET. L'ajout d'une table des matières sous .NET 10 ne nécessite aucune configuration particulière ; les mêmes API et propriétés (telles que TableOfContents dans ChromePdfRenderOptions ) sont opérationnelles immédiatement. Assurez-vous simplement d'inclure IronPDF dans votre projet via NuGet pour .NET 10 et que JavaScript est activé dans le moteur de rendu pour que la table des matières fonctionne correctement.

Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il a une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, documentation et expérience globale.
Prêt à commencer?
Nuget Téléchargements 16,154,058 | Version : 2025.11 vient de sortir