C#'da İçindekiler Tablosu Nasıl Eklenir
IronPDF, TableOfContents özelliğini ayarlayarak C#'da PDF belgelerine içindekiler eklemenize olanak tanır. Bu özellik, isteğe bağlı sayfa numaralarıyla HTML başlıklarından (h6) otomatik olarak köprü bağlantılı gezinme oluşturur.
Hızlı Başlangıç: C#'da PDF'ye İçindekiler Tablosu Ekle
-
IronPDF aşağıdaki NuGet Paket Yöneticisi ile yükleyin
PM > Install-Package IronPdf -
Bu kod parçacığını kopyalayın ve çalıştırın.
new ChromePdfRenderer { RenderingOptions = { CreateOutlineMaps = true, OutlineMapsFormat = TableOfContentsTypes.WithPageNumbers, FirstPageNumber = 1 } } .RenderHtmlFileAsPdf("myDocument.html") .SaveAs("withToc.pdf"); -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronPDF kullanmaya başlayın
Asgari İş Akışı (5 adım)
- İçindekiler tablosu eklemek için C# kütüphanesini indirin
- PDF'ye dönüştürülecek HTML'yi hazırlayın
- İçindekiler tablosunu etkinleştirmek için TableOfContents özelliğini ayarlayın
- Sayfa numaralarının gösterilip gösterilmeyeceğine karar verin
- İçindekiler tablosunun yerleştirilmesini optimize edin
PDF'de İçindekiler Tablosu Nedir?
İçindekiler tablosu (TOC), okuyucuların PDF belgesinin içeriğinde gezinmesine yardımcı olan bir yol haritasıdır. Genellikle başında görülür ve PDF'nin ana bölümlerini veya başlıklarını, her bölümün başladığı sayfa numaraları ile birlikte listeler. Bu, okuyucuların belgenin belirli bölümlerini hızla bulup geçiş yapabilmelerini sağlar, böylece ihtiyaç duydukları bilgilere erişmeleri kolaylaşır.
IronPDF, h1, h2, h3, h4, h5 ve h6 öğelerine yönlendiren bir içindekiler tablosu oluşturma özelliği sunar. Bu içindekiler tablosunun varsayılan stili, HTML içeriğindeki diğer tarzlarla çakışmaz. İronPDF ile yeni PDF'ler oluşturduğunuzda, içindekiler tablosu özelliği HTML başlıklarınızı otomatik olarak tarar ve belgenizin organizasyonunu yansıtan hiyerarşik bir gezinme yapısı oluşturur.
Oluşturulan içindekiler tablosu, okuyucuların herhangi bir bölüme doğrudan atlama imkanı sağlayan tıklanabilir bağlantılar içerir, bu da uzun belgeler, raporlar ve teknik dokümantasyon için özellikle kullanışlıdır. IronPDF'nin TOC uygulaması, HTML'nizin semantik yapısını korurken profesyonel PDF gezinme yetenekleri sağlar.
PDF'ye Nasıl İçindekiler Tablosu Eklerim?
Çıktı PDF belgesinde içindekiler tablosu oluşturulmasını sağlamak için özelliğini kullanın. Bu özellik, aşağıda açıklanan üç türünden birine atanabilir:
None: İçindekiler tablosu oluşturmayınBasic: Sayfa numaraları olmadan bir içindekiler tablosu oluşturunWithPageNumbers: Sayfa numaraları içeren bir içindekiler tablosu oluşturun
Bu özellik, içindekiler tablosunu oluşturmak için JavaScript kullanır; bu nedenle, motorun JavaScript etkin olmalıdır. HTML dosyalarını PDF'ye dönüştürürken, IronPDF'nin JavaScript motoru başlık etiketlerinizi işler ve uygun gezinme yapısını oluşturur. Bu özelliği daha iyi anlamak için aşağıdaki örnek HTML dosyasını indirin:
İçindekiler Tablosu Oluşturmak İçin Hangi Kodlara İhtiyacım Var?
: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")
Daha ileri senaryolar için işleme seçenekleri ile birlikte içindekiler tablosunu birleştirerek kapsamlı PDF belgeleri oluşturabilirsiniz:
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");
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");
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")
Oluşturulan PDF Nasıl Görünür?
İçindekiler, h1, h2, h3, h4, h5 ve h6 öğelerinin her birine yönlendiren hiperlinkler içerecek şekilde oluşturulacaktır. Başlıklarınızın hiyerarşik yapısı korunur ve alt başlıklar, ebeveyn bölümlerinin altında düzgün şekilde girintili yerleştirilir. Ayrıca, içindekiler tablosunun yanında ek navigasyon desteği sağlamak için PDF'nize sayfa numaraları ekleyebilirsiniz.
Birleştirilmiş veya bölünmüş PDF'ler ile çalışırken, doğru sayfa referansları ve işlevsel hiperlinkler için belge montajı tamamlandıktan sonra içindekiler tablosunu oluşturun.
PDF'de İçindekiler Tablosunu Nereye Yerleştirmeliyim?
- HTML belgesinde uygun başlık etiketlerinin (
'den'e kadar) bulunduğundan emin olun. - İçindekiler Tablosunun görünmesini istediğiniz yere bir div eklemek isteğe bağlıdir. Aşağıdaki div sağlanmazsa, IronPDF içindekiler tablosunu başlangıca ekler.
<div id="ironpdf-toc"></div>
<div id="ironpdf-toc"></div>
- İşleme seçeneklerinde, sayfa numaralı veya sayfa numarasız içindekiler tablosunu işlemek üzere seçim yapın.
Karmaşık düzenlere sahip belgeler için, profesyonel bir belge yapısı oluşturmak için içindekiler tablosunu başlıklar ve altbilgiler ile birleştirin. İçindekiler tablosunun optimal üretilmesi için doğru HTML yapısına bir örnek:
<!DOCTYPE html>
<html>
<head>
<title>My Document</title>
</head>
<body>
<div id="ironpdf-toc"></div>
<div style="page-break-after: always;"></div>
<h1>Executive Summary</h1>
<p>This document provides...</p>
<h2>Market Analysis</h2>
<h3>Current Trends</h3>
<p>The market shows...</p>
<h3>Future Projections</h3>
<p>We anticipate...</p>
<h2>Recommendations</h2>
<p>Based on our analysis...</p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>My Document</title>
</head>
<body>
<div id="ironpdf-toc"></div>
<div style="page-break-after: always;"></div>
<h1>Executive Summary</h1>
<p>This document provides...</p>
<h2>Market Analysis</h2>
<h3>Current Trends</h3>
<p>The market shows...</p>
<h3>Future Projections</h3>
<p>We anticipate...</p>
<h2>Recommendations</h2>
<p>Based on our analysis...</p>
</body>
</html>
İçindekiler Tablosunu Nasıl Şekillendiririm?
İçindekiler Tablosu, içindekiler tablosunun stilini belirleyen çeşitli CSS seçicilerini hedef alarak CSS ile stillendirilebilir. Yazı tiplerini yönetirken PDF'nizde, içindekiler tablosu varsayılan olarak belgenizin yazı tipi ayarlarını miras alacaktır, ancak bağımsız olarak özelleştirilebilir.
Ayrıca, `` özelliği kullanılarak stil değişiklikleri yapılabilir. Aşağıdan içindekiler tablosunun orijinal stilini içeren bir CSS dosyasını indirerek başlayın.
ve özelliklerinin üzerine yazmanız önerilmez, çünkü bu, sayfa numarası hesaplamalarını bozacaktır. Mevcut uygulama, İçindekiler Tablosunun diğer belge içeriğinden ayrı sayfalarda bulunmasını bekler.: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")
Özel kağıt boyutlarıyla çalışırken, farklı sayfa boyutlarına uyum sağlamak için içindekiler tablosunun stilini ayarlamanız, metin akışını ve sayfalandırmayı uygun şekilde yapmanız gerekebilir.
Farklı Başlık Seviyelerini Nasıl Şekillendiririm?
İçindekiler tablosundaki H1 başlığına farklı bir stil uygulamak için #IronPDF-toc ul li.h1 seçicisini kullanın. Her bir başlığın stilini değiştirmek için h1 ile h2 arasında h6'e kadar olan kısmı değiştirin.
#ironpdf-toc ul li.h1 {
font-style: italic;
font-weight: bold;
}
Yazı Tipi Ailesini Nasıl Değiştiririm?
Hem '#IronPDF-toc li .title' hem de '#IronPDF-toc li .page' seçicileriyle, içindekiler tablosunun yazı tipi ailesini değiştirmek mümkündür. Bunu yapmak için başlık için el yazısı fontu kullanın ve özel 'Lemon' yazı tipi kullanmak için @font-face özelliğini kullanın, Eduardo Tunni tarafından tasarlandı.
#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;
}
Girintiyi Nasıl Kontrol Ederim?
Girintiler, ` seçicisi kullanılarak kontrol edilebilir. Bu değer, içindekiler tablosundaki her başlık seviyesi (h1,h2`, ...) için girinti miktarını belirler. Gerektiği kadar artırılabilir veya 0 değeriyle girinti olmayabilir.
:root {
--indent-length: 25px;
}
Noktalı Çizgileri Nasıl Kaldırır veya Özelleştiririm?
Başlık ve sayfa numarası arasındaki noktalı çizgileri kaldırmak için, `` seçicisinin arka plan görüntüsünü değiştirin. Orijinal stilin ikinci parametresi "currentcolor 1px". Çizgileri kaldırmak için bunu "transparent 1px" olarak değiştirin. Bu seçicide, yeni stil eski stilin tamamen üstüne çıkacağı için diğer öznitelikleri de belirtmek önemlidir.
#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;
}
Daha gelişmiş stil seçenekleri için, farklı desenler kullanarak özel lider çizgileri oluşturun:
/* Dashed line leader */
#ironpdf-toc li::after {
background-image: linear-gradient(to right, currentcolor 50%, transparent 50%);
background-size: 8px 1px;
background-repeat: repeat-x;
background-position: bottom;
}
/* Solid line leader */
#ironpdf-toc li::after {
border-bottom: 1px solid currentcolor;
background: none;
}
Başka neler yapabileceğinizi görmek için hazır mısınız? Buradaki öğretici sayfamıza göz atın: PDF'leri Dönüştürme
Sıkça Sorulan Sorular
PDF belgeme içerik tablosunu nasıl eklerim?
IronPDF kullanarak PDF'ye bir içerik tablosu eklemek için ChromePdfRenderer üzerinde TableOfContents özelliğini ayarlayarak. Basitçe RenderingOptions.TableOfContents'i TableOfContentsTypes.Basic veya TableOfContentsTypes.WithPageNumbers olarak ayarlayın. IronPDF, HTML başlıklarınızdan (h1-h6 etiketleri) otomatik olarak TOC'yi oluşturacaktır.
Tablonun içerik listesini oluşturmak için hangi HTML unsurları kullanılır?
IronPDF, içindekiler tablosunu otomatik olarak HTML'deki h1, h2, h3, h4, h5 ve h6 başlık unsurlarını tarayarak ve kullanarak oluşturur. Bu başlıklar, belgenizin organizasyonunu yansıtan hiyerarşik bir gezinme yapısı oluşturur ve her başlık, oluşturulan PDF'nin içerik tablosunda tıklanabilir bir köprü haline gelir.
İçindekiler tablosuna sayfa numaralarını ekleyebilir miyim?
Evet, IronPDF iki içerik tablosu seçeneği sunar: TableOfContentsTypes.Basic sayfa numaraları olmayan bir TOC oluşturur, TableOfContentsTypes.WithPageNumbers ise her bölüm için sayfa numaralarını içerir. Belgenizin ihtiyaçlarına en uygun seçeneği RenderingOptions ayarlarken seçebilirsiniz.
İçindekiler tablosu özelliği JavaScript gerektiriyor mu?
Evet, IronPDF içindekiler tablosunu oluşturmak için JavaScript kullanır, bu nedenle işleme motorunun JavaScript'i etkinleştirilmiş olmalıdır. Bu genellikle varsayılan olarak etkinleştirilmiştir, ancak işleme seçeneklerinizde JavaScript'i devre dışı bıraktıysanız, içindekiler tablosu özelliğinin doğru çalışması için onu etkinleştirmeniz gerekecek.
Tek bir satır kodla sayfa numaralarıyla içindekiler tablosunu nasıl ayarlarım?
İçindekiler tablosu ve sayfa numaralarını içeren bir PDF, şu tek satır kodla oluşturulabilir: new ChromePdfRenderer { RenderingOptions = { TableOfContents = TableOfContentsTypes.WithPageNumbers, FirstPageNumber = 1 } }.RenderHtmlFileAsPdf("myDocument.html").SaveAs("withToc.pdf"); Bu, hiper bağlantılı gezinme ve sayfa numaraları ile tamamen işlevsel bir içindekiler tablosu oluşturur.
İçindekiler tablosunun stili mevcut HTML stillerimle çakışacak mı?
Hayır, IronPDF'nin varsayılan içindekiler tablosu stili, HTML içeriğinizdeki diğer stillerle çakışmayacak şekilde tasarlanmıştır. Oluşturulan içindekiler tablosu, mevcut belge içeriğinizin görünümünü korurken düzgün bir şekilde görüntülenmesini sağlayan ayrı bir stil düzenini sürdürür.

