C# Kullanarak PDF Ek Açıklamaları Nasıl Eklenir ve Düzenlenir

IronPDF ile C#'ta PDF'lere Ek Açıklamalar Ekleme ve Düzenleme

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

IronPDF, C# geliştiricilerinin belge işbirliğini artırmak ve iş uygulamalarında inceleme iş akışlarını geliştirmek için metin yorumları ve yapışkan notlar dahil PDF açıklamalarını eklemelerine, düzenlemelerine ve kaldırmalarına olanak tanır, basit API çağrıları olan AddTextAnnotation gibi. X

Açıklamalar, kullanıcıların belgeye belirli bölümlerine yorumlar, hatırlatıcılar veya ek bilgiler eklemesine izin verir. PDF'ler ile çalışırken işbirliğini ve iletişimi artırırlar, kullanıcıların not eklemesine, içerik hakkında yorum yapmasına ve paylaşılan içerik için bağlam sağlamalarına olanak tanır. Y

PDF açıklamaları, iş akışlarında çeşitli amaçlara hizmet eder: gözden geçirenler belgeleri geri bildirimlerle işaretleyebilir, ekipler orijinal içeriği değiştirmeden sözleşmeler üzerinde işbirliği yapabilir ve kalite kontrol ekipleri teknik belgelerde sorunları işaretleyebilir. Bir belge yönetim sistemi oluşturuyor veya mevcut PDF iş akışlarını geliştiriyorsanız, IronPDF'in açıklama özellikleri C# PDF yaratma ve düzenleme yeteneklerinizle sorunsuz entegre olur. Ek açıklama yeteneklerinin yanı sıra gelişmiş güvenlik özellikleri gerektiren kuruluşlar için, kapsamlı PDF güvenlik öğreticimizi keşfedin.

Hızlı Başlangıç: IronPDF ile PDF'lere Açıklama Ekleme

Bu hızlı kılavuz, IronPDF kullanarak C#'te bir PDF belgesine metin açıklamalarının nasıl ekleneceğini gösterir. Sadece birkaç kod satırı ile geliştiriciler, PDF'lerine yorum veya notlar ekleyerek belgelerinin etkileşimini ve işbirliğini artırabilirler. PDF'inizi yükleyerek ve açıklamaları hızlı bir şekilde eklemek için AddTextAnnotation yöntemini kullanarak başlayın.

  1. IronPDF aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronPdf
  2. Bu kod parçacığını kopyalayın ve çalıştırın.

    PdfDocument.FromFile("input.pdf")
        .Annotations.Add(new TextAnnotation(0) { Title="Note", Contents="Review this section.", X=50, Y=700 })
        .SaveAs("annotated.pdf");
  3. Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronPDF kullanmaya başlayın

    arrow pointer


PDF'ye Açıklamalar Nasıl Eklenir?

Annotations Title Contents X Y

PDF açıklamaları, PDF sayfalarına "yapışkan not" benzeri yorumlar eklemenize olanak tanır. Açıklamaları programatik olarak eklemek için Add yöntemini Annotations özelliği ile kullanın.

PDF'lerde metin açıklamaları, fiziksel belgelerdeki yapışkan notlara benzer şekilde çalışır. Sayfada küçük simgeler olarak görünürler ve tıklandığında tam yorum metnini gösterirler. Bu müdahalesiz yaklaşım, belgeyi okunabilir kılarken temel geri bildirim mekanizmaları sağlar. HTML'den PDF'e dönüşümlerle çalışırken, inceleme gerektiren alanları işaretlemek veya ek bağlam sağlamak için dönüşüm sonrası açıklamalar ekleyebilirsiniz. Bu fonksiyonellik, dinamik içeriğin ek açıklama gerektirebileceği JavaScript render işlemiyle birleştirildiğinde özellikle faydalıdır.

İpuçlarıTüm sayfa indeksleri sıfır tabanlı indekslemeyi takip eder.

:path=/static-assets/pdf/content-code-examples/how-to/annotation-add-annotation.cs
using IronPdf;
using IronPdf.Annotations;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Annotation</h1>");

// Create a PDF annotation object on a specified page index
TextAnnotation annotation = new TextAnnotation(0)
{
    Title = "This is the title",
    Contents = "This is the long 'sticky note' comment content...",
    X = 50,
    Y = 700,
};

// Add the annotation
pdf.Annotations.Add(annotation);
pdf.SaveAs("annotation.pdf");
Imports IronPdf
Imports IronPdf.Annotations

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Annotation</h1>")

' Create a PDF annotation object on a specified page index
Dim annotation As New TextAnnotation(0) With {
    .Title = "This is the title",
    .Contents = "This is the long 'sticky note' comment content...",
    .X = 50,
    .Y = 700
}

' Add the annotation
pdf.Annotations.Add(annotation)
pdf.SaveAs("annotation.pdf")
$vbLabelText   $csharpLabel

TextAnnotation sınıfı özelleştirme için birkaç özellik sağlar:

  • Title: Açıklamanın başlık metni, genellikle açıklamaların açılır pencerede görüntülenir
  • Contents: Açıklamanın ana gövde metni
  • X, Y: Açıklama simgesinin sayfadaki görünümünü belirten koordinatlar
  • PageIndex: Açıklamanın yerleştirileceği sıfır tabanlı sayfa numarası

Daha karmaşık belge iş akışları için, açıklamaları dijital imzalar onay süreçleri veya filigranlama gibi diğer IronPDF özellikleri ile birleştirmeyi düşünün. Hassas belgelerle çalışırken, açıklamalara kimlerin görüntüleyebileceğini veya değiştirebileceğini kontrol etmek için açıklamaları PDF izinleri ve şifreleri ile entegre edebilirsiniz.

Metin Açıklamaları için Hangi Özellikleri Ayarlayabilirim?

TextAnnotation sınıfı, temel olanların ötesindeki özelleştirmeler için birkaç özellik sağlar:

  • Title: Açıklamanın başlık metni, genellikle açıklamaların açılır pencerede görüntülenir
  • Contents: Açıklamanın ana gövde metni
  • X, Y: Açıklama simgesinin sayfadaki görünümünü belirten koordinatlar
  • PageIndex: Açıklamanın yerleştirileceği sıfır tabanlı sayfa numarası
  • Subject: Açıklamaları sınıflandırmak için isteğe bağlı bir konu satırı
  • Icon: Açıklamanın görsel temsili (ör. Not, Yorum, Yardım)
  • Open: Açıklama açılır penceresinin varsayılan olarak açık olup olmadığı

Bu özellikler, geliştiricilerin belgenin iletişimini artıran zengin, bağlamsal açıklamalar oluşturmasına imkan tanır. Birden fazla belge türünü içeren ileri düzey iş akışları için, farklı kaynak formatları arasında açıklamaları korumak için RTF to PDF dönüştürme veya Markdown to PDF dönüştürmeyi keşfedin.

PDF Açıklamalarında Koordinatlar Nasıl Çalışır?

PDF koordinatları, birçok UI framework'un üst köşe kökenlerini kullanmasının aksine, sayfanın sol alt köşesinden başlar. X ve Y özellikleri, açıklama simgesinin sayfadaki görünümünü belirler, nokta (1/72 inç) cinsindendir. Açıklamaları programlı olarak konumlandırırken konumlandırma hesaplamalarınızın bu farkı hesaba kattığından emin olun.

Açıklamalar için konum hesaplıyorken, standart ABD Mektup sayfalarının 8.5 x 11 inç (612 x 792 puan) olduğunu unutmayın. A4 sayfalar 595 x 842 puandır. Tam yerleştirme için, açıklamaları yerleştirmeden önce sayfa boyutlarını programlı olarak almak isteyebilirsiniz. Bu, özel kağıt boyutları ile çalışırken veya içerik tabanlı duyarlı açıklama yerleştirme uygularken özellikle önemlidir.

Açıklamalı PDF

Yukarıdaki PDF belgesindeki açıklamalar Chrome tarayıcı ile görüntülenebilir.


Mevcut Açıklamalar Nasıl Alınır ve Düzenlenir?

PDF açıklamalarını almak ve düzenlemek, işbirliğini arttırarak açıklığın, doğruluğun ve kullanılabilirliğin sağlanmasını sağlar. Annotations özelliği ile açıklama koleksiyonuna erişin ve Header, Body, X, Y ve daha fazlası gibi özellikleri yeni bilgilerle güncelleyin.

İnternet veya DOCX ithalatı veya URL yonlendirmeleri gibi mevcut PDF'lerle çalışırken, başka kullanıcılar veya sistemler tarafından eklenen açıklamaları değiştirmek icap edilebilir. IronPDF, tüm açıklama koleksiyonuna tam erişim sağlayarak, belirli açıklamaları programlı olarak tanımlamanıza ve güncellemenize olanak tanır. Bu yetenek, belge inceleme iş akışlarını uygularken veya mevcut belge yönetim sistemleri ile entegre olurken hayati öneme sahiptir.

:path=/static-assets/pdf/content-code-examples/how-to/annotation-edit-annotation.cs
using IronPdf;
using IronPdf.Annotations;
using System.Linq;

PdfDocument pdf = PdfDocument.FromFile("annotation.pdf");

// Retrieve annotation collection
PdfAnnotationCollection annotationCollection = pdf.Annotations;

// Select the first annotation
TextAnnotation annotation = (TextAnnotation)annotationCollection.First();

// Edit annotation
annotation.Title = "New title";
annotation.Contents = "New content...";
annotation.X = 150;
annotation.Y = 800;

pdf.SaveAs("editedAnnotation.pdf");
Imports IronPdf
Imports IronPdf.Annotations
Imports System.Linq

Private pdf As PdfDocument = PdfDocument.FromFile("annotation.pdf")

' Retrieve annotation collection
Private annotationCollection As PdfAnnotationCollection = pdf.Annotations

' Select the first annotation
Private annotation As TextAnnotation = CType(annotationCollection.First(), TextAnnotation)

' Edit annotation
annotation.Title = "New title"
annotation.Contents = "New content..."
annotation.X = 150
annotation.Y = 800

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

Düzenleme süreci tüm diğer belge özellik ve içeriklerini korur, yalnızca belirtilen açıklama değiştirilir. Bu, inceleme iş akışlarının gerekliliklere göre esneklik göstermesi gerektiğinde açıklamalar üzerinde yapılan güncellemeler için özellikle faydalıdır. Kapsamlı belge yönetimi için, açıklama düzenlemeyi metadata manipülasyonu ile birleştirmeyi düşünerek doküman versiyonlarını ve revizyon geçmişini takip edin.

Mevcut Açıklamaları Neden Düzenlemeliyim?

Açıklamaları düzenlemek, geri bildirimleri düzeltmek gerektiğinde, belirsiz yorumları açıklığa kavuşturma görevi duyulduğunda veya içerik değişiklikleri nedeniyle açıklamaları yeniden konumlandırmak gerektiğinde işbirliği belgelerinde oldukça önemlidir. Bu yetenek, belge incelemelerinin revizyon döngüsü boyunca güncel ve ilgili kalmasını sağlar.

Kurumsal ortamlarda, açıklamaların düzenlenmesi genellikle, denetçilerin son onaydan önce gözden geçiren yorumlarını değiştirme ihtiyacı duyduğu onay iş akışlarıyla entegre olur. Ek olarak, belgeler tercüme veya yerelleştirme yapıldığında, açıklamalar dil değişikliklerini veya kültürel uyarlamaları yansıtmak için güncellenmesi gerekebilir. Böyle senaryolar için, IronPDF'in UTF-8 ve uluslararası dil desteği, açıklamalarının farklı diller ve karakter setleri arasında doğru görüntülenmesini sağlar.

Açıklamalar Düzenlendiğinde Diğer Belge Özelliklerine Ne Olur?

Düzenleme süreci tüm diğer belge özellik ve içeriklerini korur, yalnızca belirtilen açıklama değiştirilir. Belge yapısı, formatlama, gömülü kaynaklar ve diğer açıklamalar olduğu gibi kalır, böylece PDF'inizin bütünlüğü korunurken, spesifik inceleme yorumları için hedeflenmiş güncellemeler yapılabilir.

Bu seçici düzenleme yaklaşımı, özellikle belge manipülasyonu esnasında düzenlenmesi gereken regülatif sektörlerde, belge bütünlüğünü korunması açısından önemlidir. Süreç, dijital imzalar, form alanları, yer imleri ve tüm diğer PDF özelliklerini korur. Denetim izleri gerektiren belgeler için, revizyon geçmişi takibini açıklama düzenlemeleriyle birlikte uygulamayı düşünün.

Düzenlenmiş Açıklamalı PDF

Yukarıdaki PDF belgesindeki açıklamalar Chrome tarayıcı ile görüntülenebilir.


Icon Quote related to Düzenlenmiş Açıklamalı PDF

Bu türden favori kütüphanem IronPDF'dir. PDF dosyalarının hızlı ve verimli bir şekilde işlenmesine olanak tanır. Ayrıca, PDF/A formatına dışa aktarma ve dijital imzalama gibi birçok değerli özelliğe sahiptir.

Milan Jovanovic related to Düzenlenmiş Açıklamalı PDF

Milan Jovanovic

Microsoft MVP

Vaka çalışmasını görüntüle
Icon Quote related to Düzenlenmiş Açıklamalı PDF

IronOCR, manuel işleme maliyetinden yıllık 40.000 USD tasarruf etmemizi sağlıyor, üretkenliği artırıyor ve yüksek etkili görevler için kaynakları serbest bırakıyor. Kesinlikle tavsiye ederim.

Brent Matzelle related to Düzenlenmiş Açıklamalı PDF

Brent Matzelle

Teknoloji Müdürü, OPYN

Vaka çalışmasını görüntüle
Icon Quote related to Düzenlenmiş Açıklamalı PDF

IronSuite, operasyonlarımızda kritik bir rol oynar. Bunlar, iş süreçlerinde verimliliği artıran, kat planları oluşturmak ve envanter yönetimini geliştirmek gibi araçlardır.

David Jones related to Düzenlenmiş Açıklamalı PDF

David Jones

Baş Yazılım Mühendisi, Agorus Build

Vaka çalışmasını görüntüle

PDF Belgelerinden Açıklamalar Nasıl Kaldırılır?

Gereksiz veya eski açıklamaları RemoveAt, RemoveAllAnnotationsForPage ve Clear yöntemleri kullanarak kaldırın.

  • RemoveAt: Belirtilen bir indeksle tek bir açıklamayı kaldırın.
  • RemoveAllAnnotationsForPage: Belirtilen sayfadaki tüm açıklamaları kaldırın.
  • Clear: Belgedeki tüm açıklamaları kaldırın.

Açıklamaların kaldırılması, belgenin son haline getirilmesi için önemlidir. Görüşleri dahil ettikten ve gerekli değişiklikleri yaptıktan sonra, son sürümü dağıtmadan önce inceleme yorumlarını temizlemek isteyebilirsiniz. Bu süreç, dağıtım için temiz ve optimize edilmiş belgeler oluşturmak üzere PDF sıkıştırma gibi diğer IronPDF özellikleriyle iyi entegre olur. Arşiv gerektiren belgeler için, uzun süreli koruma uyumluluğunu sağlamak adına açıklamaları kaldırdıktan sonra PDF/A formatına dönüştürmeyi göz önünde bulundurun.

Tek Bir Açıklamayı Nasıl Kaldırırım?

Tek bir açıklamayı kaldırmak için RemoveAt yöntemini açıklama koleksiyon indeksine göre kullanın.

:path=/static-assets/pdf/content-code-examples/how-to/annotation-remove-single-annotation.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("multipleAnnotation.pdf");

// Remove a single annotation with specified index
pdf.Annotations.RemoveAt(1);

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

Private pdf As PdfDocument = PdfDocument.FromFile("multipleAnnotation.pdf")

' Remove a single annotation with specified index
pdf.Annotations.RemoveAt(1)

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

Açıklamaları programatik olarak kaldırırken, her kaldırma işleminden sonra açıklama koleksiyonunun yeniden indekslendiğini anlamak önemlidir. Birden fazla belirli açıklamayı kaldırmanız gerekiyorsa, koleksiyondan geriye doğru çalışın veya önce kaldırmak istediğiniz açıklamaları toplayın, ardından onları ters sırada çıkarın. Bu yaklaşım, yanlış açıklamaların kaldırılmasına yol açabilecek indeks kayma sorunlarını önler.

PDF Üzerindeki Tek Bir Açıklama Kaldırıldı

Yukarıdaki PDF belgesindeki açıklamalar Chrome tarayıcı ile görüntülenebilir.

Tüm Açıklamaları Nasıl Bir Anda Kaldırırım?

Belirli bir sayfadaki tüm açıklamaları kaldırmak için RemoveAllAnnotationsForPage yöntemini ve sayfa indeksini belirtin. Tüm belgedeki açıklamaları kaldırmak istiyorsanız, Clear yöntemini Annotations özelliği üzerinde çağırın.

Bu toplu kaldırma özelliği, belgeleri son dağıtım için hazırlarken veya önceki inceleme döngülerinden gelen açıklamaların kaldırılması gereken belge sürümleme sistemlerini uygularken özellikle kullanışlıdır. Belge özelliklerini güncellemek ve inceleme durumunu belirtmek için bunu metadata düzenleme ile birleştirmeyi düşünün. Temizlenmiş belgelere ihtiyaç duyan iş akışları için, açıklamalar dahil potansiyel olarak hassas bilgilerin tümünü kaldırmak üzere [PDF temizleme](https://ironpdf.com/how to sanitize-pdf/) seçeneklerini keşfedin.

:path=/static-assets/pdf/content-code-examples/how-to/annotation-remove-all-annotation.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("multipleAnnotation.pdf");

// Remove all annotaions on a specified page
pdf.Annotations.RemoveAllAnnotationsForPage(0);

// Remove all annotaions on the document
pdf.Annotations.Clear();

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

Private pdf As PdfDocument = PdfDocument.FromFile("multipleAnnotation.pdf")

' Remove all annotaions on a specified page
pdf.Annotations.RemoveAllAnnotationsForPage(0)

' Remove all annotaions on the document
pdf.Annotations.Clear()

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

Toplu Açıklama Kaldırmayı Ne Zaman Kullanmalıyım?

Belgeleri dağıtım için tamamlarken, arşiv amaçlı temiz sürümler oluştururken veya önceki inceleme döngülerinden gelen açıklamaların temizlenmesi gereken belge sürümlemeyi uygularken toplu kaldırma idealdir. Bu yaklaşım, açıklamaları tek tek kaldırmaya göre zaman kazandırır ve üretim belgelerinde yanlışlıkla inceleme yorumlarının kalmamasını sağlar.

Ayrıca, otomatik işleme sistemleri için belgeleri hazırlarken veya açıklamalı PDF'leri diğer formatlara dönüştürürken kritik öneme sahiptir. Yüksek güvenlikli ortamlarda, dağıtımdan önce tüm açıklamaları kaldırmak, iç inceleme yorumlarının veya dış kitleler için hedeflenmeyen hassas geri bildirimlerin istemeden ifşa edilmesini engeller.


Bir PDF'ye Tıklanabilir Dahili Bağlantılar Nasıl Eklenir?

LinkAnnotation DestinationType Hidden

LinkAnnotation sınıfı, bir sayfada aynı PDF içinde başka bir sayfaya tıklamayla giden tıklanabilir bir dikdörtgen oluşturur. Özellikle özel içerik tabloları, çapraz referanslar, "En üste dön" butonları ve diğer belge içi navigasyon için idealdir. TextAnnotation gibi, bir LinkAnnotation, Annotations.Add yöntemi ile eklenir, böylece yorumlar ve yapışkan notlar için zaten kullanmakta olduğunuz koleksiyonla entegre edilir.

Pozisyon X, Y, Width ve Height ile ayarlanır (noktalar halinde, 72 nokta = 1 inç'tir), veya bir Rectangle doğrudan atayarak. Hem bağlantının bulunduğu sayfa hem de hedef sayfa yapıcıda sıfır tabanlı indekslerle belirtilir.

İpuçlarıX, Y, Width ve Height tümü -1 döndürür siz onları ayarlayana kadar. Onları ayarlamayı unutmak geçersiz bir açıklama üretecektir, bu yüzden her zaman tıklanabilir alanı atayın.

:path=/static-assets/pdf/content-code-examples/how-to/annotation-link-basic.cs
using IronPdf;
using IronPdf.Annotations;

// Load an existing multi-page PDF
PdfDocument pdf = PdfDocument.FromFile("multipage.pdf");

// Create a clickable link on page 1 (index 0) that jumps to page 6 (index 5).
// Page indexes are zero-based. The default DestinationType (Page) fits the
// whole destination page in the viewer when the link is clicked.
LinkAnnotation link = new LinkAnnotation(pageIndex: 0, destinationPageIndex: 5)
{
    X = 72,        // points from the LEFT edge of the page (72 points = 1 inch)
    Y = 700,       // BOTTOM edge of the clickable area (PDF origin is bottom-left)
    Width = 200,
    Height = 20,
    Contents = "Go to Chapter 6"
};

// LinkAnnotation lives in the same collection as TextAnnotation
pdf.Annotations.Add(link);
pdf.SaveAs("internal-link.pdf");
Imports IronPdf
Imports IronPdf.Annotations

' Load an existing multi-page PDF
Dim pdf As PdfDocument = PdfDocument.FromFile("multipage.pdf")

' Create a clickable link on page 1 (index 0) that jumps to page 6 (index 5).
' Page indexes are zero-based. The default DestinationType (Page) fits the
' whole destination page in the viewer when the link is clicked.
Dim link As New LinkAnnotation(pageIndex:=0, destinationPageIndex:=5) With {
    .X = 72,        ' points from the LEFT edge of the page (72 points = 1 inch)
    .Y = 700,       ' BOTTOM edge of the clickable area (PDF origin is bottom-left)
    .Width = 200,
    .Height = 20,
    .Contents = "Go to Chapter 6"
}

' LinkAnnotation lives in the same collection as TextAnnotation
pdf.Annotations.Add(link)
pdf.SaveAs("internal-link.pdf")
$vbLabelText   $csharpLabel

Yerleştirme dışında, görünüm ve meta verileri kontrol eden birkaç özellik vardır: Color bağlantı sınır rengini ayarlar, Contents tanımlayıcı metin veya bir ipucu sağlar ve Title açıklamanın adını belirtir. Varolan içeriğe görünmez bir tıklama kaplaması için, Color ayarlamadan bırakın ve Hidden = true ayarlayın (bu kılavuzun ilerleyen bölümlerinde gösterilecektir).

Bağlantı Ek Açıklaması ile Metin Ek Açıklaması Arasındaki Fark Nedir?

TextAnnotation bir "yapışkan nottur": tıklandığında metin gösteren bir yorum simgesi. LinkAnnotation, okuyucuyu hedef bir sayfaya atlayan görünmez veya kenarlı tıklanabilir bir bölgedir: bir gezinme denetimi. Her ikisi de Annotations koleksiyonunu ve aynı Add, RemoveAt, RemoveAllAnnotationsForPage ve Clear işlemlerini paylaşır, böylece aynı belgede yorumları ve gezinme bağlantılarını karıştırabilir ve birlikte yönetebilirsiniz.

LinkAnnotation, aynı dosyada sayfaları hedeflediği için IronPDF'nin ana hatları ve yer imleri ile uyum sağlar (görüntüleyicinin yan çubuk gezinme ağacını oluşturur) ve otomatik olarak oluşturulan bir içindekiler tablosu özelliği sağlar HTML'den PDF'e dönüştürme için. Kenar çubuğu için yer imlerini, işlenmiş HTML için TOC özelliğini ve mevcut bir PDF'te tıklanabilir alanlar gerekliyse LinkAnnotation kullanın.

Hedefte Okuyucunun Gördüğünü Nasıl Kontrol Edebilirim?

DestinationType özelliği, bağlantıya tıklanıldığında hedef sayfanın nasıl görüntüleneceğini yönetmek için mevcut BookmarkDestinations enumunu kullanır. Varsayılan BookmarkDestinations.Page'dir, bu da tüm hedef sayfayı pencereye sığdırır. Diğer değerler, bir pozisyona kaydırma, bir yakınlaştırma seviyesi ayarlama veya belirli bir dikdörtgene sığdırmayı kullanarak DestinationTop, DestinationLeft, DestinationRight, DestinationBottom ve DestinationZoom koordinatlarını kullanır.

BookmarkDestinations değeri Tıklanınca davranış Kullanılan hedef koordinatları
Page (varsayılan) Tüm hedef sayfayı pencereye sığdırın. none
PageY Dikey bir konuma kaydırın; tam genişliği gösterin. DestinationTop
PageX Yatay bir konuma kaydırın; tam yüksekliği gösterin. DestinationLeft
PageZoom Bir konuma gidin ve bir yakınlaştırma seviyesi ayarlayın. DestinationLeft, DestinationTop, DestinationZoom
PageRect Sayfa üzerinde belirli bir dikdörtgene sığdırın. DestinationLeft, DestinationBottom, DestinationRight, DestinationTop
PageBounds Sayfa sınır kutusuna göre sayfa boyutunu uydurun. none
PageBoundsY Sayfa sınırlama kutusuna dayalı PageY ile aynı. DestinationTop
PageBoundsX Sayfa sınırlama kutusuna dayalı PageX ile aynı. DestinationLeft

İpuçlarıDestinationZoom = 0 "mevcut yakınlaştırmayı miras al" anlamına gelir, sıfır yakınlaştırma değil. %150 gibi bir değer ayarlayın 150 için.

:path=/static-assets/pdf/content-code-examples/how-to/annotation-link-destination-types.cs
using IronPdf;
using IronPdf.Annotations;
using IronPdf.Bookmarks;

PdfDocument pdf = PdfDocument.FromFile("multipage.pdf");

// 1. Scroll to a specific vertical position on the destination page (full width shown)
LinkAnnotation scrollLink = new LinkAnnotation(0, 2)
{
    X = 72, Y = 680, Width = 300, Height = 16,
    DestinationType = BookmarkDestinations.PageY,
    DestinationTop = 400        // scroll so y=400 sits at the top of the view
};
pdf.Annotations.Add(scrollLink);

// 2. Jump to a position AND set the zoom level
LinkAnnotation zoomLink = new LinkAnnotation(0, 3, "Zoom to figure")
{
    X = 72, Y = 650, Width = 200, Height = 16,
    DestinationType = BookmarkDestinations.PageZoom,
    DestinationLeft = 100,
    DestinationTop = 500,
    DestinationZoom = 150       // 150% zoom; use 0 to inherit the current zoom
};
pdf.Annotations.Add(zoomLink);

// 3. Fit a specific rectangle on the destination page
LinkAnnotation rectLink = new LinkAnnotation(0, 4)
{
    X = 72, Y = 620, Width = 200, Height = 16,
    DestinationType = BookmarkDestinations.PageRect,
    DestinationLeft = 50,
    DestinationBottom = 100,
    DestinationRight = 550,
    DestinationTop = 700
};
pdf.Annotations.Add(rectLink);

pdf.SaveAs("link-destinations.pdf");
Imports IronPdf
Imports IronPdf.Annotations
Imports IronPdf.Bookmarks

Dim pdf As PdfDocument = PdfDocument.FromFile("multipage.pdf")

' 1. Scroll to a specific vertical position on the destination page (full width shown)
Dim scrollLink As New LinkAnnotation(0, 2) With {
    .X = 72, .Y = 680, .Width = 300, .Height = 16,
    .DestinationType = BookmarkDestinations.PageY,
    .DestinationTop = 400        ' scroll so y=400 sits at the top of the view
}
pdf.Annotations.Add(scrollLink)

' 2. Jump to a position AND set the zoom level
Dim zoomLink As New LinkAnnotation(0, 3, "Zoom to figure") With {
    .X = 72, .Y = 650, .Width = 200, .Height = 16,
    .DestinationType = BookmarkDestinations.PageZoom,
    .DestinationLeft = 100,
    .DestinationTop = 500,
    .DestinationZoom = 150       ' 150% zoom; use 0 to inherit the current zoom
}
pdf.Annotations.Add(zoomLink)

' 3. Fit a specific rectangle on the destination page
Dim rectLink As New LinkAnnotation(0, 4) With {
    .X = 72, .Y = 620, .Width = 200, .Height = 16,
    .DestinationType = BookmarkDestinations.PageRect,
    .DestinationLeft = 50,
    .DestinationBottom = 100,
    .DestinationRight = 550,
    .DestinationTop = 700
}
pdf.Annotations.Add(rectLink)

pdf.SaveAs("link-destinations.pdf")
$vbLabelText   $csharpLabel

Mevcut Metin Üzerine Bir Bağlantıyı Nasıl Yerleştiririm?

Zaten bir sayfada var olan bir metin üzerinde tıklanabilir bir bağlantı sunmak için, metni PdfPage.TextChunks ile çıkarın ve bağlantıyı boyutlandırmak için her parçanın BoundingBox'ını kullanın. PDF koordinatları sayfanın sol-alt köşesinden başladığından, tıklanabilir alanı görünür metnin üstüne yerleştirecek olan BoundingBox.Bottom'u Y olarak atayın, BoundingBox.Top değil. Görünür sınırı bırakmak için Hidden = true ayarlayın, böylece bağlantı işlenmiş metnin üzerinde görünmeden durur.

Bu, statik, basılı bir içindekiler tablosunu gezilebilir bir hale getirmenin temelidir. Aşağıdaki örnek, TOC sayfasını tarar, metniyle her girişe eşleşir ve doğru sayfaya atlayan görünmez bir LinkAnnotation overlayi uygular.

:path=/static-assets/pdf/content-code-examples/how-to/annotation-link-toc.cs
using IronPdf;
using IronPdf.Annotations;
using IronPdf.Bookmarks;
using System;
using System.Collections.Generic;

PdfDocument pdf = PdfDocument.FromFile("report-with-toc.pdf");

// Zero-based index of the page that holds the table-of-contents text
int tocPageIndex = 1;

// Map each TOC entry's leading text to the page index it should jump to
var tocEntries = new Dictionary<string, int>
{
    { "Introduction", 2 },
    { "Methodology",  4 },
    { "Results",      6 },
    { "Conclusion",   9 },
};

// Walk the text chunks on the TOC page and overlay a clickable link on each match
foreach (var chunk in pdf.Pages[tocPageIndex].TextChunks)
{
    string text = chunk.Contents.Trim();

    foreach (var entry in tocEntries)
    {
        if (!text.StartsWith(entry.Key)) continue;

        var box = chunk.BoundingBox;
        pdf.Annotations.Add(new LinkAnnotation(tocPageIndex, entry.Value)
        {
            X = (int)box.Left,
            Y = (int)box.Bottom,                       // Bottom, NOT Top (PDF origin is bottom-left)
            Width = (int)Math.Max(box.Width, 400),
            Height = (int)Math.Abs(box.Top - box.Bottom),
            DestinationType = BookmarkDestinations.PageY,
            DestinationTop = 792,                      // top of a US Letter page
            Hidden = true                              // invisible overlay on the existing TOC text
        });
        break;
    }
}

pdf.SaveAs("clickable-toc.pdf");
Imports IronPdf
Imports IronPdf.Annotations
Imports IronPdf.Bookmarks
Imports System
Imports System.Collections.Generic

Dim pdf As PdfDocument = PdfDocument.FromFile("report-with-toc.pdf")

' Zero-based index of the page that holds the table-of-contents text
Dim tocPageIndex As Integer = 1

' Map each TOC entry's leading text to the page index it should jump to
Dim tocEntries As New Dictionary(Of String, Integer) From {
    {"Introduction", 2},
    {"Methodology", 4},
    {"Results", 6},
    {"Conclusion", 9}
}

' Walk the text chunks on the TOC page and overlay a clickable link on each match
For Each chunk In pdf.Pages(tocPageIndex).TextChunks
    Dim text As String = chunk.Contents.Trim()

    For Each entry In tocEntries
        If Not text.StartsWith(entry.Key) Then Continue For

        Dim box = chunk.BoundingBox
        pdf.Annotations.Add(New LinkAnnotation(tocPageIndex, entry.Value) With {
            .X = CInt(box.Left),
            .Y = CInt(box.Bottom),                       ' Bottom, NOT Top (PDF origin is bottom-left)
            .Width = CInt(Math.Max(box.Width, 400)),
            .Height = CInt(Math.Abs(box.Top - box.Bottom)),
            .DestinationType = BookmarkDestinations.PageY,
            .DestinationTop = 792,                      ' top of a US Letter page
            .Hidden = True                              ' invisible overlay on the existing TOC text
        })
        Exit For
    Next
Next

pdf.SaveAs("clickable-toc.pdf")
$vbLabelText   $csharpLabel

Geri Dön ve Aynı Sayfa Bağlantılarını Yapabilir miyim?

Evet. Aynı sayfa bağlantıları, burada pageIndex destinationPageIndex'a eşittir, tamamen desteklenir ve "başa dön" butonu oluşturmanın tipik yoludur. Mevcut sayfanın en üstüne tıklamayı kaydıracak şekilde, yüksek bir DestinationTop değeriyle DestinationType = BookmarkDestinations.PageY ile aynı sayfa bağlantısını birleştirin. Uzun raporlar için tutarlı bir yukarı dön kontrolü sağlamak için her sayfanın altına aynı bağlantıyı ekleyin.


PDF Yorumlama ile Çalışırken En İyi Uygulamalar Nelerdir?

Uygulamalarınızda açıklama özelliklerini uygularken, şu en iyi uygulamaları göz önünde bulundurun:

  1. Koordinat Sistemi: PDF koordinatları sayfanın sol alt köşesinden başlar, birçok UI çerçevesinin kullandığı sol üst köşeden farklı olarak. Koordinat hesaplamalarınızın bu farkı dikkate aldığından emin olun.

  2. Performans Optimizasyonu: Birden fazla açıklama eklerken, eklemelerden sonra kaydetmek yerine işlemleri toplu olarak yapmayı düşünün. Bu yaklaşım, özellikle büyük PDF dosyaları ile çalışırken performansı artırır.

  3. Açıklama Görünürlüğü: Tüm PDF görüntüleyiciler açıklamaları aynı şekilde göstermez. Kullanıcı deneyimini tutarlı kılmak için, açıklamalı PDF'lerinizi çeşitli görüntüleyicilerde test edin.

  4. Formlarla Entegrasyon: Açıklamalar, form yapısını değiştirmeden bağlamsal yardım veya talimatlar sağlayarak PDF formlarını tamamlar.

  5. Güvenlik Hususları: Hassas belgelerle çalışırken, açıklamaların gizli bilgiler içerebileceğini unutmayın. Açıklamalı içeriği korumak için uygun güvenlik önlemlerini uygulayın.

  6. Erişilebilirlik: Engelli kullanıcılar için ek bağlam sağlayarak, belgenin erişilebilirliğini artıran açıklamaların eklenmesini düşünün. Bu, erişilebilir belgeler için PDF/UA uyumluluk gereksinimleri ile uyumludur.

Açıklama için Koordinat Sistemleri Neden Önemlidir?

PDF koordinatlarının sol alt köşeden başlaması, sol üst köşe sistemlerine alışkın olan geliştiriciler için karışıklık yaratabilir. Yanlış koordinat hesaplamaları, açıklamaları beklenmedik yerlere yerleştirerek önemli içeriği gölgeleyebilir veya sayfa dışına çıkabilir. Kullanıcı arayüz çerçeveleri veya kullanıcı girişi sistemleriyle entegre edildiğinde her zaman koordinatları uygun şekilde dönüştürün.

Tıkla-açıkla özellikleri uygularken veya kullanıcı etkileşimlerinden PDF koordinatlarına ekran koordinatları dönüştürülürken koordinat sisteminin anlaşılması daha da kritik hale gelir. Karmaşık konum gereksinimleri için, görüntüleme koşullarından bağımsız olarak açıklamaların doğru görünmesini sağlamak için IronPDF'nin viewport ve zoom yeteneklerini kullanmayı düşünün.

Birden Fazla Açıklama Eklerken Performansı Nasıl Optimize Edebilirim?

Birden fazla açıklama eklerken, belgeden tasarruf etmeden önce tüm açıklamaları koleksiyona ekleyerek işlemlerinizi toplu olarak gerçekleştirin. Bu yaklaşım, dosya girdi/çıktı işlemlerini azaltır ve özellikle büyük PDF'lerde veya ardışık birden fazla belge işlerken performansı önemli ölçüde artırır. Toplu işlemler sırasında daha iyi kullanıcı deneyimi için ilerleme göstergeleri uygulamayı düşünün.

// Example of batch annotation processing
var annotations = new List<TextAnnotation>();
for (int i = 0; i < 100; i++)
{
    annotations.Add(new TextAnnotation(0) 
    { 
        Title = $"Note {i}", 
        Contents = $"Content for note {i}",
        X = 50 + (i * 10),
        Y = 700 - (i * 20)
    });
}

// Add all annotations at once
foreach (var annotation in annotations)
{
    pdf.Annotations.Add(annotation);
}

// Save once after all additions
pdf.SaveAs("batch-annotated.pdf");
// Example of batch annotation processing
var annotations = new List<TextAnnotation>();
for (int i = 0; i < 100; i++)
{
    annotations.Add(new TextAnnotation(0) 
    { 
        Title = $"Note {i}", 
        Contents = $"Content for note {i}",
        X = 50 + (i * 10),
        Y = 700 - (i * 20)
    });
}

// Add all annotations at once
foreach (var annotation in annotations)
{
    pdf.Annotations.Add(annotation);
}

// Save once after all additions
pdf.SaveAs("batch-annotated.pdf");
Imports System.Collections.Generic

' Example of batch annotation processing
Dim annotations As New List(Of TextAnnotation)()
For i As Integer = 0 To 99
    annotations.Add(New TextAnnotation(0) With {
        .Title = $"Note {i}",
        .Contents = $"Content for note {i}",
        .X = 50 + (i * 10),
        .Y = 700 - (i * 20)
    })
Next

' Add all annotations at once
For Each annotation In annotations
    pdf.Annotations.Add(annotation)
Next

' Save once after all additions
pdf.SaveAs("batch-annotated.pdf")
$vbLabelText   $csharpLabel

Yüksek hacimli senaryolarda daha iyi performans için, paralel olarak açıklama işlemlerini gerçekleştirmek için asenkron işlem veya çoklu iş parçacığı tekniklerini kullanmayı düşünün.

Çapraz Görüntüleyici Uyumluluğu için Neleri Göz Önünde Bulundurmalıyım?

Çeşitli PDF görüntüleyicileri, açıklamaları farklı simge stilleri, açılır popup davranışları veya konumlandırma tuhaflıkları ile gösterebilir. Kullanıcılarınızın kullanabileceği platformlarda açıklamalar doğru görünecek ve işlevsel kalacak şekilde Adobe Acrobat, Chrome, Edge ve mobil PDF okuyucular gibi popüler görüntüleyicilerde açıklamalı PDF'lerinizi her zaman test edin.

Bazı görüntüleyiciler, tüm açıklama türlerini desteklemeyebilir veya farklı şekilde gösterebilir. Maksimum uyumluluk sağlamak için standart açıklama türlerine sadık kalın ve görüntüleyiciye özgü özelliklere güvenmekten kaçının. Azure veya AWS gibi belirli ortamlara dağıtırken, hedef ortamın varsayılan PDF görüntüleyicilerinde açıklamaları test edin.

Başka neler yapabileceğinizi görmek için hazır mısınız? Öğretici sayfamıza buradan göz atın: PDF Düzenle

Sıkça Sorulan Sorular

C# dilinde PDF belgelerine metin açıklamaları nasıl eklerim?

IronPDF, AddTextAnnotation yöntemiyle metin açıklamaları eklemeniz için basit bir API sağlar. Sayfa numarası, pozisyon koordinatları (X, Y), başlık ve içerik belirterek açıklamalar oluşturabilirsiniz. Örneğin, bir satır kodla bir yapışkan not açıklamasını Annotations.Add yöntemi ve bir TextAnnotation nesnesi kullanarak ekleyebilirsiniz.

Desteklenen PDF açıklama türleri nelerdir?

IronPDF, PDF belgelerinde yapışkan notlar gibi işlev gören metin açıklamalarını destekler. Bu açıklamalar, üzerine tıklandığında tam yorum metnini gösteren sayfada küçük simgeler olarak görünür ve belgenin belirli bölümlerine yorum, hatırlatıcı veya ek bilgi eklemek için müdahalesiz bir yöntem sağlar.

Mevcut PDF açıklamalarını programlı olarak düzenleyebilir miyim?

Evet, IronPDF, API'si aracılığıyla mevcut PDF açıklamalarını geri çağırıp düzenlemenize olanak sağlar. Açıklamalara, bir PdfDocument nesnesinin Annotations özelliği kullanılarak erişebilir, başlık, içerik ve konum gibi özelliklerini değiştirip sonra değişiklikleri PDF'ye geri kaydedebilirsiniz.

Bir PDF belgesinden açıklamaları nasıl kaldırabilirim?

IronPDF, PDF belgelerinden açıklamaları programatik olarak kaldırmanız için yöntemler sağlar. Bir PdfDocument'in Annotations koleksiyonuna erişebilir ve belirli açıklamaları kaldırabilir veya bir sayfadan veya tüm belgelerden tüm açıklamaları temizleyebilirsiniz.

PDF açıklamaları için genellikle hangi iş kullanım durumları söz konusudur?

IronPDF'nin açıklama özellikleri, belgeleri geri bildirimlerle işaretleyebilecek inceleme iş akışları, orijinal içeriği değiştirmeden sözleşmelerde ekip işbirliği ve kalite güvence ekiplerinin teknik belgelerdeki sorunları belirtmesi için idealdir. Bu özellikler, belge yönetim sistemleriyle sorunsuz bir şekilde entegre edilir.

PDF açıklama özelliklerini kullanmak için ek yazılım yüklemem gerekiyor mu?

Hayır, IronPDF, tüm PDF açıklama işlevselliğini içeren tek başına bir C# kütüphanesidir. PDF belgelerinden açıklamalar eklemeye, düzenlemeye ve kaldırmaya başlamak için yalnızca IronPDF kütüphanesini indirip projenizde referans gösterin ve herhangi bir harici bağımlılıklara gerek kalmadan kullanın.

C#'da bir PDF'e tıklanabilir dahili gezinme bağlantılarının nasıl eklenir?

IronPDF'un LinkAnnotation sınıfını kullanın, bu sınıf metin açıklamaları gibi Annotations.Add metodu aracılığıyla eklenir. Sıfır tabanlı bir sayfa indeksi ve hedef bir sayfa indeksi ile bir LinkAnnotation oluşturun, tıklanabilir alanı X, Y, Genişlik ve Yükseklik (puan cinsinden) ile ayarlayın ve IronPDF, hedef sayfaya atlayan tıklanabilir bir bölge oluşturur. Bu, özelleştirilmiş içerik tabloları, çapraz referanslar ve yukarı dön butonları için idealdir.

Bir PDF bağlantısına tıklandığında yakınlaştırma ve kaydırma konumunu nasıl kontrol ederim?

LinkAnnotation'ın DestinationType özelliğini BookmarkDestinations enum kullanarak ayarlayın. Varsayılan Page değeri tüm hedef sayfayı sığdırırken, PageY bir dikey pozisyona kaydırır, PageZoom bir pozisyon ve yakınlaştırma seviyesini ayarlar ve PageRect belirli bir dikdörtgeni sığdırır. Görünümü DestinationTop, DestinationLeft, DestinationRight, DestinationBottom ve DestinationZoom ile rafine edin. DestinationZoom = 0, sıfır yakınlaştırma yerine mevcut yakınlaştırmanın devralındığı anlamına gelir.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 19,936,792 | Sürüm: 2026.7 yeni yayınlandı
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizi bir PDF'ye dönüştüğünü izleyin.