IronPDF Kullanarak C#'ta PDF Yer İşaretleri & Ana Hatlar Eklemek
IronPDF, C#'ta PDF belgelerine yer işaretleri (ana hatlar) eklemenize olanak tanır ve İçindekiler Tablosu benzeri navigasyon araçları yaratır. Belgenin kullanılabilirliğini artırmak ve kullanıcıların ana bölümlere hızlıca gitmesine yardımcı olmak için tek veya çok katmanlı yer işaretleri ekleyin. Bu özellik, Windows, Linux ve macOS ortamlarında sorunsuz çalışır.
Hızlı Başlangıç: C#'ta PDF'inize Yer İşaretleri Ekleyin
IronPDF ile hızlı bir başlangıç yaparak PDF belgelerinize yer işaretleri ekleyin. Bu kılavuz, mevcut bir PDF'yi yükleyip navigasyon için yer işaretleri eklemeyi ve güncellenmiş belgeyi kaydetmeyi gösterir. C# projelerinde PDF işlevselliğini artırmak isteyen geliştiriciler için mükemmel.
-
IronPDF aşağıdaki NuGet Paket Yöneticisi ile yükleyin
-
Bu kod parçacığını kopyalayın ve çalıştırın.
var pdf = new IronPdf.PdfDocument("example.pdf"); pdf.Bookmarks.AddBookMarkAtEnd("Chapter 1", 1); pdf.SaveAs("bookmarked.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)
- IronPDF'yu NuGet'ten İndirin
- Mevcut veya yeni PDF belgeyi yükleyin
- Ana bölümlere gitmek için tek katmanlı yer işaretleri ekleyin
- Hiyerarşik organizasyon için çok katmanlı yer işaretleri ekleyin
- Yer işareti özelliklerini alın ve görüntüleyin
C#'ta PDF Yer İşaretleri ile Nasıl Çalışırım?
Adobe Acrobat Reader'da, ana hatlar (yer işaretleri olarak da bilinir) sol yan panelde gösterilir ve belgenin ana bölümlerine geçmenin kolay bir yolunu sağlar. Yer işaretleri, okuyucuların karmaşık belgeler arasında verimli bir şekilde gezinmesini sağlayan etkileşimli bir içindekiler tablosu işlevi görür.
IronPDF ile PDF belgelerini içe aktarabilir ve mevcut ana hatlar üzerinde çeşitli işlemler gerçekleştirebilirsiniz: ekleme, yeniden sıralama, özelliklerini düzenleme ve yer işaretlerini silme. Bu, PDF dosyalarınızın organizasyonu ve yapısı üzerinde tam kontrol sağlar, tıpkı belgelerinizi birleştirme veya ayırma işlemlerini yönetmek gibi.
Tek Katmanlı Yer İşaretlerini Nasıl Eklerim?
IronPDF'de bir yer işareti eklemek basittir. Yer işareti adını ve ilgili sayfa dizinini belirterek AddBookmarkAtEnd metodunu kullanın. Bu işlevsellik, başlık ve alt bilgileri ekleme veya özel kenar boşluklarını ayarlama gibi diğer PDF işlemleriyle iyi bir şekilde entegre olur ve profesyonel belgeler oluşturmanıza yardımcı olur. Aşağıda bir örnek verilmiştir:
:path=/static-assets/pdf/content-code-examples/how-to/bookmarks-single-layer-bookmark.cs
using IronPdf;
// Create a new PDF or edit an existing document.
PdfDocument pdf = PdfDocument.FromFile("existing.pdf");
// Add a bookmark
pdf.Bookmarks.AddBookMarkAtEnd("NameOfBookmark", 0);
// Add a sub-bookmark
pdf.Bookmarks.AddBookMarkAtEnd("NameOfSubBookmark", 1);
pdf.SaveAs("singleLayerBookmarks.pdf");
Imports IronPdf
' Create a new PDF or edit an existing document.
Private pdf As PdfDocument = PdfDocument.FromFile("existing.pdf")
' Add a bookmark
pdf.Bookmarks.AddBookMarkAtEnd("NameOfBookmark", 0)
' Add a sub-bookmark
pdf.Bookmarks.AddBookMarkAtEnd("NameOfSubBookmark", 1)
pdf.SaveAs("singleLayerBookmarks.pdf")
AddBookMarkAtEnd metodu mevcut yer işaretleri listesine yer işaretleri ekler. Yer işareti yerleşimi üzerinde daha fazla kontrol için, yer işaretlerini listenin başına eklemek üzere AddBookMarkAtStart kullanın. Her yer işareti belirli bir sayfa dizinine referans verir, bu da belgede hassas gezinmeyi sağlar.
Tek Katmanlı Yer İşaretleri Belgesi
Çok Katmanlı Yer İşareti Hiyerarşilerini Nasıl Oluştururum?
IronPDF, PDF belgelerinde gezinmeyi etkili bir şekilde sürdürmek için ağaç yapısında yer işaretleri eklemenize olanak tanır. Bu özellik, çok sayıda sınav kağıdı, satış raporu veya farklı tarih ve yerlerden makbuz kayıtları içeren geniş koleksiyonlarla çalışırken değerlidir. Tıpkı veri toplama için PDF formları oluşturma gibi, yapılandırılmış yer işaretleri, karmaşık bilgilerin hiyerarşik olarak organize edilmesine yardımcı olur.
AddBookMarkAtEnd metodu bir IPdfBookMark nesnesi döndürür, böylece alt yer işaretleri ekleyebilirsiniz. Örneğin, 'Examination' yer işaretine alt yer işaretleri eklemek için Children.AddBookMarkAtStart("Date1", 0) veya Children.AddBookMarkAtEnd("Date1", 0) kullanın. Bu iç içe geçmiş yapı, belgenizin mantıksal akışını yansıtan bir hiyerarşik organizasyon oluşturur. Aşağıdaki kod bu konsepti gösterir:
:path=/static-assets/pdf/content-code-examples/how-to/bookmarks-multi-layer-bookmark.cs
using IronPdf;
// Load existing PDF document
PdfDocument pdf = PdfDocument.FromFile("examinationPaper.pdf");
// Assign IPdfBookMark object to a variable
var mainBookmark = pdf.Bookmarks.AddBookMarkAtEnd("Examination", 0);
// Add bookmark for days
var date1Bookmark = mainBookmark.Children.AddBookMarkAtStart("Date1", 1);
// Add bookmark for type of test
var paperBookmark = date1Bookmark.Children.AddBookMarkAtStart("Paper", 1);
paperBookmark.Children.AddBookMarkAtEnd("PersonA", 3);
paperBookmark.Children.AddBookMarkAtEnd("PersonB", 4);
// Add bookmark for days
var date2Bookmark = mainBookmark.Children.AddBookMarkAtEnd("Date2", 5);
// Add bookmark for type of test
var computerBookmark = date2Bookmark.Children.AddBookMarkAtStart("Computer", 5);
computerBookmark.Children.AddBookMarkAtEnd("PersonC", 6);
computerBookmark.Children.AddBookMarkAtEnd("PersonD", 7);
pdf.SaveAs("multiLayerBookmarks.pdf");
Imports IronPdf
' Load existing PDF document
Private pdf As PdfDocument = PdfDocument.FromFile("examinationPaper.pdf")
' Assign IPdfBookMark object to a variable
Private mainBookmark = pdf.Bookmarks.AddBookMarkAtEnd("Examination", 0)
' Add bookmark for days
Private date1Bookmark = mainBookmark.Children.AddBookMarkAtStart("Date1", 1)
' Add bookmark for type of test
Private paperBookmark = date1Bookmark.Children.AddBookMarkAtStart("Paper", 1)
paperBookmark.Children.AddBookMarkAtEnd("PersonA", 3)
paperBookmark.Children.AddBookMarkAtEnd("PersonB", 4)
' Add bookmark for days
Dim date2Bookmark = mainBookmark.Children.AddBookMarkAtEnd("Date2", 5)
' Add bookmark for type of test
Dim computerBookmark = date2Bookmark.Children.AddBookMarkAtStart("Computer", 5)
computerBookmark.Children.AddBookMarkAtEnd("PersonC", 6)
computerBookmark.Children.AddBookMarkAtEnd("PersonD", 7)
pdf.SaveAs("multiLayerBookmarks.pdf")
Bu hiyerarşik yaklaşım, ayrıntılı organizasyon gerektiren karmaşık belgelerle çalışırken özellikle değerlidir. İç içe geçmiş yapı, kullanıcıların içeriği genişletip daraltmasını sağlayarak belgenin yüzlerce sayfası olsa bile gezintiyi sezgisel hale getirir.
Çok Katmanlı Yer İşaretleri Belgesi
HTML Başlıklarından Otomatik Yer İmleri Nasıl Oluşturabilirim?
HTML'yi PDF'ye dönüştürürken, IronPDF belgenin başlık yapısından (h1-h6) veya herhangi bir özel CSS seçicisinden otomatik olarak hiyerarşik bir yer imi şematiği oluşturabilir. Bu, her bölüm için AddBookMarkAtEnd manuel olarak çağırma gereksinimini ortadan kaldırır.
Özelliği etkinleştirin ve AutoBookmarksFromHeadings özelliğini RenderHtmlAsPdf veya RenderUrlAsPdf çağırmadan önce RenderingOptions üzerinde ayarlayın:
:path=/static-assets/pdf/content-code-examples/how-to/bookmarks-auto-from-headings.cs
using IronPdf;
var renderer = new ChromePdfRenderer();
// Master switch: auto-generate bookmarks from HTML headings (h1-h6) during rendering
renderer.RenderingOptions.AutoBookmarksFromHeadings = true;
var html = @"
<h1>Annual Report</h1>
<h2>Executive Summary</h2>
<p>Overview of the year.</p>
<h2>Financial Results</h2>
<h3>Revenue</h3>
<h3>Expenses</h3>
<h2>Outlook</h2>
<p>Looking forward.</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
// pdf.Bookmarks is already populated with a hierarchical outline matching the heading structure
pdf.SaveAs("auto-bookmarked.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Master switch: auto-generate bookmarks from HTML headings (h1-h6) during rendering
renderer.RenderingOptions.AutoBookmarksFromHeadings = True
Dim html As String = "
<h1>Annual Report</h1>
<h2>Executive Summary</h2>
<p>Overview of the year.</p>
<h2>Financial Results</h2>
<h3>Revenue</h3>
<h3>Expenses</h3>
<h2>Outlook</h2>
<p>Looking forward.</p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
' pdf.Bookmarks is already populated with a hierarchical outline matching the heading structure
pdf.SaveAs("auto-bookmarked.pdf")
Aşağıdaki özellikler hangi öğelerin yer imi olduğunu kontrol eder:
AutoBookmarksFromHeadings(bool, varsayılanfalse): Özelliği açın.trueolarak ayarlandığında, IronPDF HTML başlıklarınızdan otomatik olarak bir yer işareti ana hat oluşturur.AutoBookmarkMinHeadingLevel(int, varsayılan1): Başlamak için en yüksek düzey başlık.1olarak ayarlayın, belgede en üstteki h1 dahil.AutoBookmarkMaxHeadingLevel(int, varsayılan6): Dahil edilecek en derin başlık düzeyi. Sadece h1, h2 ve h3 için yer işareti yapmak üzere3olarak ayarlayın - h4 ile h6'ı yoksayarak.AutoBookmarkCssSelectors(string[], varsayılannull): Başlık etiketleri yerine özel CSS seçicileri kullanın. Örneğin:".chapter-title"veya"[data-bookmark]".
Başlık Seviyelerini ve CSS Seçicilerini Özelleştirme
Sadece üst düzey başlıklarla sınırlı olacak şekilde yer imlerini sınırlayın:
renderer.RenderingOptions.AutoBookmarksFromHeadings = true;
renderer.RenderingOptions.AutoBookmarkMaxHeadingLevel = 3;
renderer.RenderingOptions.AutoBookmarksFromHeadings = true;
renderer.RenderingOptions.AutoBookmarkMaxHeadingLevel = 3;
renderer.RenderingOptions.AutoBookmarksFromHeadings = True
renderer.RenderingOptions.AutoBookmarkMaxHeadingLevel = 3
Başlıklar yerine özel öğeleri yer imi yapmak için CSS seçicileri sağlayın:
renderer.RenderingOptions.AutoBookmarksFromHeadings = true;
renderer.RenderingOptions.AutoBookmarkCssSelectors = new[]
{
"h1",
".chapter-title",
"[data-bookmark]"
};
renderer.RenderingOptions.AutoBookmarksFromHeadings = true;
renderer.RenderingOptions.AutoBookmarkCssSelectors = new[]
{
"h1",
".chapter-title",
"[data-bookmark]"
};
renderer.RenderingOptions.AutoBookmarksFromHeadings = True
renderer.RenderingOptions.AutoBookmarkCssSelectors = New String() {
"h1",
".chapter-title",
"[data-bookmark]"
}
HTML Öğelerinin Render Edilen Konumunu Nasıl Sorgularım?
Render edilme işleminden sonra, IronPDF verilen bir HTML öğesinin hangi sayfa ve koordinatlarda sona erdiğini tam olarak bildirir. Bu, önce render edip, sonra metin çıkararak ve sayfaları manuel olarak arama yöntemini değiştirmektedir.
GetElementLocations çağrısını, sonuçta ortaya çıkan PdfDocument üzerinde yapmadan önce ElementQuerySelectors'i RenderingOptions üzerinde ayarlayın:
:path=/static-assets/pdf/content-code-examples/how-to/bookmarks-element-locations.cs
using IronPdf;
using System;
var renderer = new ChromePdfRenderer();
// Configure which elements should be queryable after rendering
renderer.RenderingOptions.ElementQuerySelectors = new[] { "h1", ".kpi-card" };
var html = @"
<h1>Q4 Dashboard</h1>
<div class='kpi-card'>Revenue: $1.2M</div>
<div class='kpi-card'>Growth: 18%</div>
<h1>Q3 Comparison</h1>
<div class='kpi-card'>Previous: $1.0M</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
// Retrieve the rendered page location of each matched element
foreach (var location in pdf.GetElementLocations())
{
Console.WriteLine($"'{location.Text}' on page {location.PageIndex + 1} " +
$"at ({location.Rectangle.X}, {location.Rectangle.Y})");
}
pdf.SaveAs("dashboard.pdf");
Imports IronPdf
Imports System
Dim renderer = New ChromePdfRenderer()
' Configure which elements should be queryable after rendering
renderer.RenderingOptions.ElementQuerySelectors = New String() {"h1", ".kpi-card"}
Dim html = "
<h1>Q4 Dashboard</h1>
<div class='kpi-card'>Revenue: $1.2M</div>
<div class='kpi-card'>Growth: 18%</div>
<h1>Q3 Comparison</h1>
<div class='kpi-card'>Previous: $1.0M</div>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
' Retrieve the rendered page location of each matched element
For Each location In pdf.GetElementLocations()
Console.WriteLine($"'{location.Text}' on page {location.PageIndex + 1} " &
$"at ({location.Rectangle.X}, {location.Rectangle.Y})")
Next
pdf.SaveAs("dashboard.pdf")
GetElementLocations, eşleşen her bir eleman için bir giriş içeren bir List<RenderedElementLocation> döndürür:
| Özellik | Tür | Size ne bildirir |
|---|---|---|
Text |
string |
Öğenin içindeki metin. |
PageIndex |
int |
Öğenin hangi sayfada sona erdiği (0'dan başlar). |
Rectangle |
IronSoftware.Drawing.Rectangle |
Öğenin, sayfadaki konumu PDF puanlarında (1/72 inç). Başlangıç, sol alt köşedir. |
ElementIndex |
int |
Öğenin orijinal HTML'deki sırası (0'dan başlar). |
GetElementLocations çağrısında yeniden taramayı zorlamak için ResetElementLocationCache çağırın.
Otomatik Yer İmleri ile Öğenin Konum Takibini Kombinleme
Otomatik yer imleri ve öğe konum sorguları tek bir render işleminde birleştirilebilir. Örneğin, h1/h2 başlıklarından bir ana hat oluştururken .invoice-total elemanlarının sayfa konumunu izlemek:
:path=/static-assets/pdf/content-code-examples/how-to/bookmarks-auto-and-locations.cs
using IronPdf;
using System;
var renderer = new ChromePdfRenderer();
// Auto-generate bookmarks from top-level headings only
renderer.RenderingOptions.AutoBookmarksFromHeadings = true;
renderer.RenderingOptions.AutoBookmarkMaxHeadingLevel = 2;
// Also track the page location of invoice totals after rendering
renderer.RenderingOptions.ElementQuerySelectors = new[] { ".invoice-total" };
var html = @"
<h1>Invoice #2026-001</h1>
<h2>Line Items</h2>
<p>Services rendered for Q1.</p>
<p class='invoice-total'>Subtotal: $4,500.00</p>
<h1>Invoice #2026-002</h1>
<h2>Line Items</h2>
<p>Consulting hours for Q2.</p>
<p class='invoice-total'>Subtotal: $7,200.00</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
// Bookmarks are populated automatically; locations can be queried after rendering
foreach (var location in pdf.GetElementLocations())
{
Console.WriteLine($"{location.Text} appears on page {location.PageIndex + 1}");
}
pdf.SaveAs("invoices.pdf");
Imports IronPdf
Imports System
Dim renderer As New ChromePdfRenderer()
' Auto-generate bookmarks from top-level headings only
renderer.RenderingOptions.AutoBookmarksFromHeadings = True
renderer.RenderingOptions.AutoBookmarkMaxHeadingLevel = 2
' Also track the page location of invoice totals after rendering
renderer.RenderingOptions.ElementQuerySelectors = New String() {".invoice-total"}
Dim html As String = "
<h1>Invoice #2026-001</h1>
<h2>Line Items</h2>
<p>Services rendered for Q1.</p>
<p class='invoice-total'>Subtotal: $4,500.00</p>
<h1>Invoice #2026-002</h1>
<h2>Line Items</h2>
<p>Consulting hours for Q2.</p>
<p class='invoice-total'>Subtotal: $7,200.00</p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
' Bookmarks are populated automatically; locations can be queried after rendering
For Each location In pdf.GetElementLocations()
Console.WriteLine($"{location.Text} appears on page {location.PageIndex + 1}")
Next
pdf.SaveAs("invoices.pdf")
Mevcut Yer İşaretlerini Nasıl Alır ve Gezinirim?
IronPDF, bir PDF belgesindeki yer işaretlerini almanızı ve görüntülemenizi kolaylaştırır. Yer işareti ağacında gezinmek basittir ve farklı bölümlere kesintisiz erişim sağlar. Bu işlevsellik, düzenlenmesi gereken mevcut PDF'lerle çalışırken veya yer işaretli bölümler içinde ara ve değiştir gibi özellikleri uygularken önemlidir. Yukarıdaki çok katmanlı yer işaretleri belgesi örneğini düşünün.
"Examination" yer işareti, "Date1" ve "Date2" yer işaretlerini işaret eden bir Children özelliğine sahiptir. "Date1" yer işareti, "Date2" yer işaretini gösteren bir NextBookmark özelliğine sahiptir. Ek olarak, "Date1" yer işareti, "Paper" yer işaretini içeren bir Children özelliğine sahiptir. Bu birbirine bağlı yapı, gelişmiş navigasyon düzenleri ve belge organizasyonu sağlar.
Açık PDF belgesindeki tüm yer işaretlerini almak için GetAllBookmarks metodunu kullanın. Bu, mevcut tüm yer işaretlerinin kapsamlı bir listesini sağlar ve yer işareti yapısını analiz etmenize ve kullanmanıza olanak tanır:
:path=/static-assets/pdf/content-code-examples/how-to/bookmarks-retrieve-bookmark.cs
using IronPdf;
// Load existing PDF document
PdfDocument pdf = PdfDocument.FromFile("multiLayerBookmarks.pdf");
// Retrieve bookmarks list
var mainBookmark = pdf.Bookmarks.GetAllBookmarks();
Imports IronPdf
' Load existing PDF document
Private pdf As PdfDocument = PdfDocument.FromFile("multiLayerBookmarks.pdf")
' Retrieve bookmarks list
Private mainBookmark = pdf.Bookmarks.GetAllBookmarks()
-1 ayarlanacaktır.
PDF'i HTML'den oluştururken İçindekiler Tablosu oluşturmayı öğrenmek için şu makaleye bakın: "IronPDF ile İçindekiler Tablosu Oluşturma."
Başka neler yapabileceğinizi görmek için hazır mısınız? Derli toplu Öğretici sayfamızı kontrol edin: PDF'leri Düzenleyin
Sıkça Sorulan Sorular
C# içinde bir PDF belgeye yer işaretleri nasıl ekleyebilirim?
IronPDF, PDF belgelerine C# içinde yer işaretleri eklemeyi kolaylaştırır. Bir yer işareti adı ve sayfa dizini belirterek AddBookmarkAtEnd yöntemini kullanarak tek katmanlı yer işaretleri ekleyebilirsiniz. Örneğin: pdf.Bookmarks.AddBookMarkAtEnd("Bölüm 1", 1). Bu, kullanıcıların ana bölümlere hızlı geçiş yapmalarına yardımcı olan bir içindekiler tablosuna benzer gezinti yardımcıları oluşturur.
AddBookmarkAtEnd ve AddBookmarkAtStart yöntemleri arasındaki fark nedir?
IronPDF, yer işareti yerleştirmesi için iki yöntem sunar. AddBookMarkAtEnd yöntemi, yer işaretlerini mevcut yer işareti listesinin sonuna eklerken, AddBookMarkAtStart, yer işaretlerini listenin başına ekler. Her iki yöntem de belge içinde kesin gezinme için belirli sayfa dizinlerine referans verir.
Çok seviyeli hiyerarşik yer işaret yapıları oluşturabilir miyim?
Evet, IronPDF, çok katmanlı hiyerarşik yer işaret yapıları oluşturmanıza olanak tanır. Bu, bölümleri olan karmaşık belgeleri organize etmek için özellikle yararlıdır, aynen detaylı bir içindekiler tablosu oluşturan bölüm ve alt bölümler.
Yer işareti işlevselliği farklı işletim sistemlerinde uyumlu mu?
IronPDF'in yer işareti özelliği, Windows, Linux ve macOS ortamlarında sorunsuz çalışır. İşletim sisteminizden bağımsız olarak PDF yer işaretlerini ekleyebilir, düzenleyebilir ve yönetebilirsiniz, bu da farklı platformlarda tutarlı bir işlevsellik sağlar.
Mevcut PDF yer işaretlerinde hangi işlemleri yapabilirim?
IronPDF ile, mevcut PDF özetlerinde yeni yer işaretleri ekleme, yer değiştirme, yer işareti özelliklerini düzenleme ve istenmeyen yer işaretlerini silme dahil çeşitli işlemler gerçekleştirebilirsiniz. Bu, PDF dosyalarınızın yapısı ve organizasyonu üzerinde tam kontrol sağlar.
Kullanıcılar PDF'yi açtığında yer işaretleri nasıl görüntülenir?
Adobe Acrobat Reader ve benzeri PDF görüntüleyicilerde, IronPDF ile oluşturulan yer işaretleri sol kenar çubuğunda özetler olarak görünür. Bunlar, okuyucuların belirli bölümlere tıklayarak karmaşık belgelerde verimli bir şekilde gezinmeleri için etkileşimli bir içindekiler tablosu olarak işlev görür.

