using IronPdf;// Instantiate RendererChromePdfRenderer renderer = new ChromePdfRenderer();// Configure render optionsrenderer.RenderingOptions = new ChromePdfRenderOptions{ // Enable table of content featureTableOfContents = TableOfContentsTypes.WithPageNumbers,};PdfDocument pdf = renderer.RenderHtmlFileAsPdf("tableOfContent.html");pdf.SaveAs("tableOfContents.pdf");
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");
ImportsIronPdf' Instantiate RendererPrivate renderer As New ChromePdfRenderer()' Configure render optionsrenderer.RenderingOptions = New ChromePdfRenderOptionsWith {.TableOfContents = TableOfContentsTypes.WithPageNumbers}Dim pdf AsPdfDocument = 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")
using IronPdf;// Create renderer with multiple optionsChromePdfRenderer renderer = new ChromePdfRenderer();renderer.RenderingOptions = new ChromePdfRenderOptions{ // Enable table of contents with page numbersTableOfContents = TableOfContentsTypes.WithPageNumbers, // Add margins for better formattingMarginTop = 40,MarginBottom = 40, // Enable JavaScript for dynamic contentEnableJavaScript = true, // Set paper orientationPaperOrientation = PdfPaperOrientation.Portrait, // Add first page number offsetFirstPageNumber = 1}; // Convert HTML with multiple header levelsstring htmlContent = @"<h1>Introduction</h1><p>Welcome to our comprehensive guide...</p><h2>Chapter 1: Getting Started</h2><p>Let's begin with the basics...</p><h3>1.1 Prerequisites</h3><p>Before we start, ensure you have...</p><h2>Chapter 2: Advanced Topics</h2><p>Now let's explore more complex features...</p>";PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);pdf.SaveAs("document-with-toc.pdf");
using IronPdf;
// Create renderer with multiple options
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions = new ChromePdfRenderOptions
{
// Enable table of contents with page numbers
TableOfContents = TableOfContentsTypes.WithPageNumbers,
// Add margins for better formatting
MarginTop = 40,
MarginBottom = 40,
// Enable JavaScript for dynamic content
EnableJavaScript = true,
// Set paper orientation
PaperOrientation = PdfPaperOrientation.Portrait,
// Add first page number offset
FirstPageNumber = 1
};
// Convert HTML with multiple header levels
string htmlContent = @"
<h1>Introduction</h1>
<p>Welcome to our comprehensive guide...</p>
<h2>Chapter 1: Getting Started</h2>
<p>Let's begin with the basics...</p>
<h3>1.1 Prerequisites</h3>
<p>Before we start, ensure you have...</p>
<h2>Chapter 2: Advanced Topics</h2>
<p>Now let's explore more complex features...</p>
";
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("document-with-toc.pdf");
ImportsIronPdf' Create renderer with multiple optionsDim renderer As New ChromePdfRenderer()renderer.RenderingOptions = New ChromePdfRenderOptionsWith { ' Enable table of contents with page numbers .TableOfContents = TableOfContentsTypes.WithPageNumbers, ' Add margins for better formatting .MarginTop = 40, .MarginBottom = 40, ' Enable JavaScript for dynamic content .EnableJavaScript = True, ' Set paper orientation .PaperOrientation = PdfPaperOrientation.Portrait, ' Add first page number offset .FirstPageNumber = 1}' Convert HTML with multiple header levelsDim htmlContent AsString = "<h1>Introduction</h1><p>Welcome to our comprehensive guide...</p><h2>Chapter 1: Getting Started</h2><p>Let's begin with the basics...</p><h3>1.1 Prerequisites</h3><p>Before we start, ensure you have...</p><h2>Chapter 2: Advanced Topics</h2><p>Now let's explore more complex features...</p>"Dim pdf AsPdfDocument = renderer.RenderHtmlAsPdf(htmlContent)pdf.SaveAs("document-with-toc.pdf")
Imports IronPdf
' Create renderer with multiple options
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions = New ChromePdfRenderOptions With {
' Enable table of contents with page numbers
.TableOfContents = TableOfContentsTypes.WithPageNumbers,
' Add margins for better formatting
.MarginTop = 40,
.MarginBottom = 40,
' Enable JavaScript for dynamic content
.EnableJavaScript = True,
' Set paper orientation
.PaperOrientation = PdfPaperOrientation.Portrait,
' Add first page number offset
.FirstPageNumber = 1
}
' Convert HTML with multiple header levels
Dim htmlContent As String = "
<h1>Introduction</h1>
<p>Welcome to our comprehensive guide...</p>
<h2>Chapter 1: Getting Started</h2>
<p>Let's begin with the basics...</p>
<h3>1.1 Prerequisites</h3>
<p>Before we start, ensure you have...</p>
<h2>Chapter 2: Advanced Topics</h2>
<p>Now let's explore more complex features...</p>
"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("document-with-toc.pdf")
生成的 PDF 看起来像什么?
目录将创建并包含到h6的超链接。 保留标题的层次结构,在父节下适当缩进小标题。 您还可以在 PDF 中添加页码,以便在目录旁边提供额外的导航支持。
Merge方法会破坏目录的超链接。
在处理合并或拆分的 PDF 文件时,应在所有文档组装完成后生成目录,以确保准确的页面引用和功能性超链接。
我最喜欢的这种库是 IronPDF。它允许快速高效地操作 PDF 文件。它还具有许多有价值的功能,比如导出为 PDF/A 格式和数字签名 PDF 文档。
using IronPdf;using System.IO;// Instantiate RendererChromePdfRenderer renderer = new ChromePdfRenderer();// Configure render optionsrenderer.RenderingOptions = new ChromePdfRenderOptions{ // Enable table of content featureTableOfContents = TableOfContentsTypes.WithPageNumbers,CustomCssUrl = "./custom.css"};// Read HTML text from filestring html = File.ReadAllText("tableOfContent.html");PdfDocument pdf = renderer.RenderHtmlAsPdf(html);pdf.SaveAs("tableOfContents.pdf");
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");
ImportsIronPdfImportsSystem.IO' Instantiate RendererPrivate renderer As New ChromePdfRenderer()' Configure render optionsrenderer.RenderingOptions = New ChromePdfRenderOptionsWith { .TableOfContents = TableOfContentsTypes.WithPageNumbers, .CustomCssUrl = "./custom.css"}' Read HTML text from fileDim html AsString = File.ReadAllText("tableOfContent.html")Dim pdf AsPdfDocument = 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")
不会,IronPDF 的默认目录样式设计不会与 HTML 内容中的其他样式冲突。生成的目录会保持自己独立的样式,以确保正确显示,同时保留现有文档内容的外观。
Can I specify where the table of contents should appear in my PDF using IronPDF?
Yes, you can specify a placeholder in your HTML using a div with the id `ironpdf-toc`. If not specified, IronPDF will automatically place the table of contents at the start of the document.
Does IronPDF support dynamic content like JavaScript when generating PDFs?
Yes, IronPDF supports dynamic content and can execute JavaScript during the conversion process, enhancing the interactivity of the generated PDF.
How can I download a sample HTML file to see how Table of Contents is structured?
You can download a sample HTML file directly from the IronPDF guide to understand how the table of contents is structured before converting it to a PDF.
What should I be cautious of when styling the table of contents in IronPDF?
When styling the table of contents, avoid modifying `page-break-before` and `page-break-after` properties within the TOC styling, as they may disrupt page number calculations in the PDF.