C#'da İçindekiler Dizini Nasıl Eklenir
IronPDF ile, TableOfContents özelliğini ayarlayarak C# dilinde PDF belgelerine içindekiler tablosu ekleyebilirsiniz. Bu özellik, HTML başlıklarından (h1-h6) otomatik olarak bağlantılı gezinme oluşturur ve isteğe bağlı sayfa numaraları ekler.
Hızlı Başlangıç: C# ile PDF'ye İçindekiler Dizini Ekleyin
-
NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronPdf yükleyin
PM > Install-Package IronPdf -
Bu kod parçasını kopyalayıp ç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 etmek için dağıtın
Bugün projenizde IronPDF kullanmaya başlayın ücretsiz deneme ile
Minimal Is Akisi (5 adimda)
- İndirin: İçindekiler dizinine bir C# kütüphanesi ekleme
- PDF'ye dönüştürülecek HTML'yi hazırlayın.
- TableOfContents özelliğini etkinleştirerek içindekiler dizinini etkinleştirin.
- Sayfa numaralarını gösterip göstermemeye karar verin.
- İçindekiler dizininin yerleşimini optimize edin.
PDF İçinde İçindekiler Dizini Nedir?
İçindekiler dizini (TOC), okuyucuların PDF belgesinin içeriğinde gezinmesine yardımcı olan bir yol haritasıdır. Genellikle başta bulunur ve PDF'nin ana bölümlerini veya bölümlerini, her bölümün başladığı sayfa numaralarıyla birlikte listeler. Bu, okuyucuların belgede ihtiyaç duydukları bilgilere hızla ulaşmalarını ve özel bölümlere atlamalarını sağlar.
IronPDF, 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' ögelerine bağlantılar oluşturarak bir içindekiler dizini oluşturma özelliği sunar. Bu içindekiler dizininin varsayılan stili, HTML içeriğindeki diğer stillerle çakışmayacaktır. IronPDF kullanarak yeni PDF'ler oluşturduğunuzda, içindekiler dizini ö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 dizini, okuyucuların herhangi bir bölüme doğrudan atlamasını sağlayan tıklanabilir bağlantılar içerir. Bu, uzun belgeler, raporlar ve teknik dokümantasyonlar için son derece yararlıdır. IronPDF'in TOC uygulaması HTML'nizin anlamsal yapısını korurken profesyonel PDF gezinme işlevselliği sağlar.
PDF'ime İçindekiler Dizini Nasıl Eklerim?
Çıktı PDF belgesinde bir içindekiler tablosu oluşturmayı etkinleştirmek için TableOfContents özelliğini kullanın. Bu özellik, aşağıdaki gibi tanımlanan üç TableOfContentsTypes'dan birine atanabilir:
- Hiçbiri: İçindekiler dizini oluşturmayın
- Temel: Sayfa numaraları olmadan bir içindekiler dizini oluşturun
- Sayfa Numaralı: Sayfa numaralı bir içindekiler dizini oluşturun
Bu özellik, içindekiler dizinini oluşturmak için JavaScript kullanır; dolayısıyla motorun JavaScript'i etkinleştirilmiş olması gerekir. HTML dosyalarını PDF'ye dönüştürdüğünüzde, IronPDF'in 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 Dizini Oluşturmak için Hangi Koda İ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 gelişmiş senaryolar için, içindekiler dizinini başka rendering seçenekleri ile 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 dizini, 'h1', 'h2', 'h3', 'h4', 'h5' ve 'h6' her biri için bağlantılar ile oluşturulacaktır. Başlıklarınızın hiyerarşik yapısı korunur; alt başlıklar, ebeveyn bölümlerinin altında düzgün bir şekilde girintili olur. İçindekiler dizinine ek olarak PDF'nize sayfa numaraları ekleyebilir ve ek gezinme desteği sağlayabilirsiniz.
Merge yöntemini kullanmak, içindekiler tablosunun bağlantılarını bozacaktır.Birleştirilmiş veya bölünmüş PDF'lerle çalışırken, sayfa başvurularının doğru olmasını ve bağlantıların işlevsel olmasını sağlamak için belgenin tüm montajı tamamlandıktan sonra içindekiler dizinini oluşturun.
PDF'ime İçindekiler Dizini Nerede Yerleştirmeliyim?
- HTML belgesinin uygun başlık etiketlerine sahip olduğundan emin olun (
h1ileh6arasında). - İsteğe bağlı olarak içindekiler dizininin görünmesini istediğiniz yere bir div ekleyin. Aşağıdaki div sağlanmazsa, IronPDF içerikler tablosunu başa yerleştirir.
<div id="ironpdf-toc"></div>
<div id="ironpdf-toc"></div>
- Render seçeneklerinde, içindekiler dizinini sayfa numaraları ile veya olmadan render etme seçeneğini belirleyin.
Karmaşık düzenlere sahip belgelerde, profesyonel bir belge yapısı oluşturmak için içindekiler dizinini başlıklar ve alt bilgiler ile birleştirin. Optimal içindekiler dizini oluşturma için uygun HTML yapısının örneği şudur:
<!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 Dizini Nasıl Stilize Edilir?
İçindekiler dizini, içindekiler dizininin stilini tanımlayan çeşitli CSS seçicilerini hedefleyerek CSS ile stilize edilebilir. PDF'nizde yazı tiplerini yönetirken, içindekiler dizini varsayılan olarak belgenizin yazı tipi ayarlarını devralır, ancak bağımsız olarak özelleştirilebilir.
Buna ek olarak, CustomCssUrl özelliğini kullanarak stil değişiklikleri yapılabilir. Aşağıda, içindekiler dizini için orijinal stili içeren bir CSS dosyasını indirerek başlayın.
[@{w:(Şu anda, içindekiler tablosu üzerinde stil yaparken page-break-before ve page-break-after özelliklerini değiştirmek tavsiye edilmez, çünkü bu durumda sayfa numarası hesaplamaları bozulacaktır. Mevcut uygulama, şu anda içindekiler dizininin diğer belge içeriğinden ayrı sayfalarda olmasını beklemektedir.)}]
: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ı ile çalışırken, farklı sayfa boyutlarına uygun içindekiler dizini stilini ayarlamanız ve doğru metin akışı ve paginasyonun sağlanması gerekebilir.
Farklı Başlık Düzeylerini Nasıl Stilize Edebilirim?
İçindekiler dizininde H1 başlığına farklı stil uygulamak için '#ironpdf-toc ul li.h1' seçicisini kullanın. Her başlık için stil değişiklikleri yapmak için 'h1' yerine 'h2', 'h3', ...'h6' koyun.
#ironpdf-toc ul li.h1 {
font-style: italic;
font-weight: bold;
}
Yazı Ailesini Nasıl Değiştiririm?
'#ironpdf-toc li .title' ve '#ironpdf-toc li .page' seçicileri ile, içindekiler tablosunun yazı tipi ailesi değiştirilebilir. Bunu yapmak için, başlık için eğik yazı tipi kullanın ve Eduardo Tunni tarafından tasarlanmış özel 'Lemon' yazı tipini kullanmak için @font-face özelliğini kullanın.
#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 Edebilirim?
Girinti, :root seçicisi kullanılarak kontrol edilebilir. Bu değer, içindekiler dizininde her başlık seviyesi için girinti miktarını belirler (h1, h2, ...). Gerekli görüldüğünde artırılabilir veya değeri 0 olan bir girinti olmadan bırakılabilir.
:root {
--indent-length: 25px;
}
Dot Çizgilerini Nasıl Kaldırırım veya Özelleştiririm?
Başlık başlığı ve sayfa numarası arasındaki noktalı çizgileri kaldırmak için, ::after seçicisinin arka plan resmini değiştirin. Orijinal stilde, ikinci parametre "currentcolor 1px"'dir. Çizgileri kaldırmak için bunu "transparent 1px" olarak değiştirin. Bu seçicide, yeni stil eski stili tamamen geçersiz kılacağından diğer niteliklerin belirtilmesi ö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ı desenlerle özel lider çizgiler 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? Eğitim sayfamızı burada inceleyin: PDF'leri Dönüştürün
Sıkça Sorulan Sorular
PDF belgeme nasıl içindekiler tablosu eklerim?
IronPDF kullanarak, ChromePdfRenderer'de TableOfContents özelliğini ayarlayarak PDF'lerinize içindekiler tablosu ekleyebilirsiniz. Basitçe RenderingOptions.TableOfContents'u TableOfContentsTypes.Basic'e ayarlayın, sayfa numaraları olmayan bir TOC için veya TableOfContentsTypes.WithPageNumbers'a ayarlayın ve sayfa numaraları ekleyin. IronPDF HTML başlıklarınızdan (h1-h6 etiketleri) otomatik olarak bir TOC oluşturacaktır.
Hangi HTML elemanları içindekiler tablosu oluşturmak için kullanılır?
IronPDF, HTML'nizdeki h1, h2, h3, h4, h5 ve h6 başlık elemanlarını tarayıp kullanarak otomatik olarak içindekiler tablosu oluşturur. Bu başlıklar, belgenizin organizasyonunu yansıtan hiyerarşik bir navigasyon yapısı oluşturur, her başlık, üretilen PDF'nin içindekiler tablosunda tıklanabilir bir bağlantı olur.
Sayfa numaralarını içindekiler tablosuna ekleyebilir miyim?
Evet, IronPDF iki içindekiler tablosu seçeneği sunar: TableOfContentsTypes.Basic, sayfa numaraları olmayan bir TOC oluştururken, TableOfContentsTypes.WithPageNumbers, her bölüm için sayfa numaraları ekler. RenderingOptions'i ayarlarken belgenizin ihtiyaçlarına en uygun seçeneği seçebilirsiniz.
İçindekiler tablosu özelliği JavaScript gerektiriyor mu?
Evet, IronPDF içindekiler tablosunu oluşturmak için JavaScript kullanır, bu nedenle rendering motorunun JavaScript'in etkin olması gerekir. Bu genellikle varsayılan olarak etkinleştirilmiştir, ancak rendering seçeneklerinizde JavaScript'i devre dışı bıraktıysanız, içindekiler tablosu özelliğinin düzgün çalışması için etkinleştirmeniz gerekecek.
Tek bir kod satırında sayfa numaraları içeren bir içindekiler tablosunu nasıl kurarım?
Sayfa numaralarıyla birlikte bir içindekiler tablosu bulunan bir PDF oluşturmak için şu tek satırı kullanabilirsiniz: new ChromePdfRenderer { RenderingOptions = { TableOfContents = TableOfContentsTypes.WithPageNumbers, FirstPageNumber = 1 } }.RenderHtmlFileAsPdf('myDocument.html').SaveAs('withToc.pdf'); Bu, bağlantılı navigasyon ve sayfa numaralarıyla birlikte tamamen işlevsel bir TOC oluşturur.
İçindekiler tablosu stilleri mevcut HTML stillerimle çakışır mı?
Hayır, IronPDF'nin varsayılan içindekiler tablosu stili, HTML içeriğinizdeki diğer stillerle çakışmayacak şekilde tasarlanmıştır. Üretilen TOC, doğru görüntülenmeyi sağlamak amacıyla kendi ayrı stilini korurken mevcut belgenizin içeriğinin görünümünü bozmadan görüntülenir.

