C# ile IronPDF Kullanarak Tüm PDF DOM Nesnelerine Nasıl Erişilir | IronPDF

C#'de Tüm PDF DOM Nesnelerine Nasıl Erişirim?

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

C# içinde PDF DOM nesnelerine erişmek için, IronPDF'nin metin, resimler ve yol nesnelerine programatik erişim sağlayan ve doğrudan elemanları okumanıza, değiştirmenize, çevirmenize, ölçeklemenize ve kaldırmanıza olanak tanıyan ObjectModel özelliğini kullanın.

Hızlı Başlangıç: IronPDF ile PDF DOM Elemanlarına Erişim ve Güncelleme

PDF belgelerini IronPDF'nin DOM erişim özelliklerini kullanarak manipüle etmeye başlayın. Bu kılavuz, PDF DOM'una nasıl erişileceğini, bir sayfanın nasıl seçileceğini ve metin nesnelerinin nasıl değiştirileceğini gösterir. PDF'nizi yükleyin, istenen sayfaya erişin ve birkaç satır kodla içeriği güncelleyin.

  1. NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronPdf yükleyin

    PM > Install-Package IronPdf
  2. Bu kod parçasını kopyalayıp çalıştırın.

    var objs = IronPdf.ChromePdfRenderer.RenderUrlAsPdf("https://example.com").Pages.First().ObjectModel;
  3. Canlı ortamınızda test etmek için dağıtın

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

    arrow pointer

PDF'lerde DOM Nesnelerine Nasıl Erişim Sağlarım?

ObjectModel, PdfPage nesnesinden erişilir. Önce hedef PDF'yi içe aktarın ve Pages özelliğine erişin. Oradan, ObjectModel özelliğine erişmek için herhangi bir sayfayı seçin. Bu, PDF içeriği ile HTML DOM elemanları ile çalışmaya benzer şekilde programatik etkileşim sağlar.

PDF DOM nesneleri ile çalışırken, PDF belgesinin altında yatan yapıya erişim sağlarsınız. Buna metin elemanları, resimler, vektör grafikler (paths) ve PDF'nizin görsel temsilini oluşturan diğer içerikler dahildir. IronPDF, C# uygulamalarıyla entegre olan nesne yönelimli bir PDF manipülasyon yaklaşımı sunar.

:path=/static-assets/pdf/content-code-examples/how-to/access-pdf-dom-object.cs
using IronPdf;
using System.Linq;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Create a PDF from a URL
PdfDocument pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/");

// Access DOM Objects
var objects = pdf.Pages.First().ObjectModel;
Imports IronPdf
Imports System.Linq

' Instantiate Renderer
Private renderer As New ChromePdfRenderer()

' Create a PDF from a URL
Private pdf As PdfDocument = renderer.RenderUrlAsPdf("https://ironpdf.com/")

' Access DOM Objects
Private objects = pdf.Pages.First().ObjectModel
$vbLabelText   $csharpLabel
IronPDF hata ayıklayıcısı, Sınır Kutusu koordinatları ve dönüşüm özellikleri ile TextObjects koleksiyonunu gösterir

ObjectModel özelliği ImageObject, PathObject ve TextObject içerir. Her nesne, sayfa dizini, sınır kutusu, ölçek ve çeviri hakkında bilgi içerir. Bu bilgiler değiştirilebilir. İşleme seçenekleri için, bu nesnelerin nasıl görüntülendiğini özelleştirebilirsiniz. Özel kenar boşlukları ile çalışırken, nesne konumlandırmayı anlamak önemlidir.

<ImageObject>:

  • Height: Resmin yüksekliği
  • Width: Resmin genişliği
  • ExportBytesAsJpg: Resmi JPG byte dizisi olarak dışa aktarma yöntemi

<PathObject>:

  • FillColor: Yolun dolgu rengi
  • StrokeColor: Yolun çizgi rengi
  • Points: Yolu tanımlayan noktaların koleksiyonu

<TextObject>:

  • Color: Metnin rengi
  • Contents: Gerçek metin içeriği

Her nesne türü, içerik tiplerine uygun yöntemler ve özellikler sunar. Metin ve resim çıkarma veya belirli içerikleri değiştirme gerektiğinde, bu nesneler ayrıntılı kontrol sunar. PDF formaları ile çalışırken, form alanlarını programatik olarak maniple etmek gerektiğinde bu kullanışlı olur.

Glif Bilgileri ve Sınır Kutularını Nasıl Alabilirim?

Özel yazı tipleri ile belirli glifleri belirtirken, sınır kutusu ve glif bilgilerini almak gereklidir. Metin ve bit eşlem çizerken piksel-mükemmel konumlandırma için IronPDF bu bilgileri sağlar.

ObjectModel, PdfPage nesnesinden erişin. Sonra TextObjects koleksiyonuna erişin. Glyf ve sınırlayıcı kutu bilgilerini almak için GetGlyphInfo yöntemini çağırın.

:path=/static-assets/pdf/content-code-examples/how-to/access-pdf-dom-object-retrieve-glyph.cs
using IronPdf;
using System.Linq;

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

var glyph = pdf.Pages.First().ObjectModel.TextObjects.First().GetGlyphInfo();
Imports IronPdf
Imports System.Linq

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

Dim glyph = pdf.Pages.First().ObjectModel.TextObjects.First().GetGlyphInfo()
$vbLabelText   $csharpLabel
Koordinatlar, sınırlar ve metin içeriği ayrıntıları içeren PDF glif nesne özellikleri gösteren hata ayıklayıcı

Glif bilgisi konumlandırma verileri, yazı tipi metrikleri ve gelişmiş PDF manipülasyonu için karaktere özgü ayrıntılar içerir. Bu, karmaşık tipografi ve yerleşim gereksinimlerini karşılayan PDF işleme uygulamaları oluşturmanıza olanak tanır. Özel yazı tipleri ile çalışırken, bu glif-level erişimi sistemler arasında doğru işleme sağlar.


PDF Nesnelerini Nasıl Çevirebilirim?

PDF yerleşimini metin veya resim gibi öğeleri yeniden konumlandırarak ayarlayın. Nesneleri konum özelliğini değiştirerek hareket ettirin. Bu işlevsellik, IronPDF'nin PDF dönüşüm yeteneklerinin bir parçasıdır.

Aşağıdaki örnek, metni ortalamak için CSS Flexbox'ı kullanarak HTML render edilmektedir. İlk TextObject'e erişir ve yeni bir PointF atayarak Translate özelliği ile çevirir. Bu, metni 200 puan sağa ve 150 puan yukarı kaydırır. Daha fazla örnek için PDF nesnelerini çevirme örnek sayfasını ziyaret edin.

Nesneleri Çevirmek İçin Hangi Kodu Kullanmalıyım?

:path=/static-assets/pdf/content-code-examples/how-to/access-pdf-dom-object-translate.cs
using IronPdf;
using System.Drawing;
using System.Linq;

// Setup the Renderer
var renderer = new ChromePdfRenderer();

// We use CSS Flexbox to perfectly center the text vertically and horizontally.
var html = @"
<div style='display: flex; justify-content: center; align-items: center; font-size: 48px;'>
    Centered
</div>";

// Render the HTML to a PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

// Save the original PDF to see the "before" state
pdf.SaveAs("BeforeTranslate.pdf");

// Access the first text object on the first page
// In this simple HTML, this will be our "Centered" text block.
var textObject = pdf.Pages.First().ObjectModel.TextObjects.First();

// Apply the translation
// This moves the object 200 points to the right and 150 points up from its original position.
textObject.Translate = new PointF(200, 150);

// Save the modified PDF to see the "after" state
pdf.SaveAs("AfterTranslate.pdf");
Imports IronPdf
Imports System.Drawing
Imports System.Linq

' Setup the Renderer
Dim renderer As New ChromePdfRenderer()

' We use CSS Flexbox to perfectly center the text vertically and horizontally.
Dim html As String = "
<div style='display: flex; justify-content: center; align-items: center; font-size: 48px;'>
    Centered
</div>"

' Render the HTML to a PDF
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

' Save the original PDF to see the "before" state
pdf.SaveAs("BeforeTranslate.pdf")

' Access the first text object on the first page
' In this simple HTML, this will be our "Centered" text block.
Dim textObject = pdf.Pages.First().ObjectModel.TextObjects.First()

' Apply the translation
' This moves the object 200 points to the right and 150 points up from its original position.
textObject.Translate = New PointF(200, 150)

' Save the modified PDF to see the "after" state
pdf.SaveAs("AfterTranslate.pdf")
$vbLabelText   $csharpLabel

Çeviri Sonucu Nasıl Görünür?

Çıktı, "Merkezlenmiş" yazısını orijinal konumundan 200 puan sağa ve 150 puan yukarı kaydırılmış olarak gösterir.

Önce ve sonra PDF çeviri karşılaştırması, metn konumlandırma ve formatlama korunarak gösterilir

Çeviri işlemleri, nesnenin orijinal özelliklerini (yazı tipi, boyut ve renk gibi) muhafaza ederek, yalnızca konumu değiştirir. Bu, görsel görünümü etkilemeden düzen ayarlamaları için idealdir. Dinamik olarak üretilen içeriği yeniden konumlandırırken başlıklar ve altbilgiler ile çalışır.


PDF Nesnelerini Nasıl Ölçekleyebilirim?

PDF nesnelerini Scale özelliğini kullanarak yeniden boyutlandırın. Bu özellik bir çarpan olarak işlev görür. 1'den büyük değerler boyutu artırır, 0 ile 1 arasındaki değerler ise azaltır. Dinamik düzenler için ölçeklendirme ve içeriği sayfa boyutlarına sığdırmak esastır. PDF nesnelerini ölçekleme kılavuzu için daha fazla örneğe bakın.

Örnek, bir resim içeren HTML'yi işler. İlk ImageObject erişir ve Scale ile her iki eksen için 0,7 değerine sahip yeni bir PointF atamak suretiyle %70'e ölçeklendirir.

PDF Nesnelerini Ölçeklendirmek İçin Kod Nedir?

:path=/static-assets/pdf/content-code-examples/how-to/access-pdf-dom-object-scale.cs
using IronPdf;
using System.Linq;

// Setup the Renderer
var renderer = new ChromePdfRenderer();

// The image is placed in a div to give it some space on the page.
string html = @"<img src='https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTi8LuOR6_A98euPLs-JRwoLU7Nc31nVP15rw&s'>";

// Render the HTML to a PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

// Save the PDF before scaling for comparison
pdf.SaveAs("BeforeScale.pdf");

// Access the first image object on the first page
var image = pdf.Pages.First().ObjectModel.ImageObjects.First();

// We scale the image to 70% of its original size on both the X and Y axes.
image.Scale = new System.Drawing.PointF(0.7f, 0.7f);

// Save the modified PDF to see the result
pdf.SaveAs("AfterScale.pdf");
Imports IronPdf
Imports System.Linq
Imports System.Drawing

' Setup the Renderer
Dim renderer As New ChromePdfRenderer()

' The image is placed in a div to give it some space on the page.
Dim html As String = "<img src='https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTi8LuOR6_A98euPLs-JRwoLU7Nc31nVP15rw&s'>"

' Render the HTML to a PDF
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

' Save the PDF before scaling for comparison
pdf.SaveAs("BeforeScale.pdf")

' Access the first image object on the first page
Dim image = pdf.Pages.First().ObjectModel.ImageObjects.First()

' We scale the image to 70% of its original size on both the X and Y axes.
image.Scale = New PointF(0.7F, 0.7F)

' Save the modified PDF to see the result
pdf.SaveAs("AfterScale.pdf")
$vbLabelText   $csharpLabel

X ve Y eksenleri için bağımsız olarak farklı ölçeklendirme faktörleri uygulayın. Bu, içeriği belirli boyutlara sığdırmak için yararlıdır. Özel kağıt boyutları ile çalışırken, ölçeklendirme içeriği sayfa sınırları içinde tutmayı sağlar.

Pratikte Ölçeklendirme Nasıl Görünür?

Çıktı, resmin orijinal boyutunun %70'ine ölçeklendiğini gösterir.

PDF ölçeklendirme demosu: İRON logosu büyük boyuttan (solda) küçük boyuta (sağda) ölçeklendi, dönüşümü gösteren ok ile

PDF Nesnelerini Nasıl Kaldırabilirim?

PDF DOM koleksiyonu gibi ImageObjects veya TextObjects öğelerini erişerek nesneleri kaldırın. Silinecek nesnenin indeksini geçerek koleksiyon üzerinde RemoveAt çağırın. Bu, içerik sansürleme veya belgeleri basitleştirme için faydalıdır. PDF nesnelerini kaldırma örneği hakkında daha fazla bilgi edinin.

Kod BeforeScale.pdf'i yükler ve ilk sayfadan ilk resmi kaldırır.

Nesneleri Kaldırmak İçin Hangi Kodu Kullanmalıyım?

:path=/static-assets/pdf/content-code-examples/how-to/access-pdf-dom-object-remove.cs
using IronPdf;
using System.Linq;

// Load the PDF file we created in the Scale example
PdfDocument pdf = PdfDocument.FromFile("BeforeScale.pdf");

// Access DOM Objects
var objects = pdf.Pages.First().ObjectModel;

// Remove first image
objects.ImageObjects.RemoveAt(0);

// Save the modified PDF
pdf.SaveAs("removedFirstImage.pdf");
Imports IronPdf
Imports System.Linq

' Load the PDF file we created in the Scale example
Dim pdf As PdfDocument = PdfDocument.FromFile("BeforeScale.pdf")

' Access DOM Objects
Dim objects = pdf.Pages.First().ObjectModel

' Remove first image
objects.ImageObjects.RemoveAt(0)

' Save the modified PDF
pdf.SaveAs("removedFirstImage.pdf")
$vbLabelText   $csharpLabel

Birden Fazla Nesneyi Kaldırdığımda Ne Olur?

Kaldırdıktan sonra kalan nesnelerin indeksleri kayar. Birden fazla nesne kaldırılırken, doğru indeksleri korumak için ters sırayla kaldırın. Bu teknik, hassas belgelerden metinleri sansürlerken yardımcı olur.

Birden Fazla DOM İşlemini Nasıl Birleştiririm?

IronPDF'nin DOM erişimi, gelişmiş belge işleme iş akışlarını etkinleştirir. Karmaşık dönüşümler için işlemleri birleştirin:

Birleştirilmiş İşlemleri Ne Zaman Kullanmalıyım?

// Example of combining multiple DOM operations
using IronPdf;
using System.Linq;

PdfDocument pdf = PdfDocument.FromFile("complex-document.pdf");

// Iterate through all pages
foreach (var page in pdf.Pages)
{
    var objects = page.ObjectModel;

    // Process text objects
    foreach (var textObj in objects.TextObjects)
    {
        // Change color of specific text
        if (textObj.Contents.Contains("Important"))
        {
            textObj.Color = System.Drawing.Color.Red;
        }
    }

    // Scale down all images by 50%
    foreach (var imgObj in objects.ImageObjects)
    {
        imgObj.Scale = new System.Drawing.PointF(0.5f, 0.5f);
    }
}

pdf.SaveAs("processed-document.pdf");
// Example of combining multiple DOM operations
using IronPdf;
using System.Linq;

PdfDocument pdf = PdfDocument.FromFile("complex-document.pdf");

// Iterate through all pages
foreach (var page in pdf.Pages)
{
    var objects = page.ObjectModel;

    // Process text objects
    foreach (var textObj in objects.TextObjects)
    {
        // Change color of specific text
        if (textObj.Contents.Contains("Important"))
        {
            textObj.Color = System.Drawing.Color.Red;
        }
    }

    // Scale down all images by 50%
    foreach (var imgObj in objects.ImageObjects)
    {
        imgObj.Scale = new System.Drawing.PointF(0.5f, 0.5f);
    }
}

pdf.SaveAs("processed-document.pdf");
Imports IronPdf
Imports System.Linq
Imports System.Drawing

Dim pdf As PdfDocument = PdfDocument.FromFile("complex-document.pdf")

' Iterate through all pages
For Each page In pdf.Pages
    Dim objects = page.ObjectModel

    ' Process text objects
    For Each textObj In objects.TextObjects
        ' Change color of specific text
        If textObj.Contents.Contains("Important") Then
            textObj.Color = Color.Red
        End If
    Next

    ' Scale down all images by 50%
    For Each imgObj In objects.ImageObjects
        imgObj.Scale = New PointF(0.5F, 0.5F)
    Next
Next

pdf.SaveAs("processed-document.pdf")
$vbLabelText   $csharpLabel

Birleştirilmiş İşlemler İçin Yaygın Kullanım Alanları Nelerdir?

Birleştirilmiş DOM işlemleri şu amaçlar için uygundur:

  1. Toplu Belge İşleme: Belgeleri biçimlendirmeyi standartlaştırmak veya hassas içeriği kaldırmak için işleyin
  2. Dinamik Rapor Oluşturma: Gerçek zamanlı verilerle şablon PDF'leri değiştirirken düzeni kontrol edin
  3. İçerik Göçü: PDF'lerden içerik çıkarın ve yeni düzenlerde yeniden organize edin
  4. Erişilebilirlik İyileştirmeleri: Metin boyutunu, kontrastı veya aralığı değiştirerek belgeleri geliştirin

Bu teknikler, karmaşık modifikasyonları işleyen güçlü PDF işleme uygulamalarını mümkün kılar. Belge özelliklerini yönetmek için metadata yönetim kılavuzuna bakın.

DOM Erişimi Diğer PDF Manipülasyon Yöntemleriyle Nasıl Karşılaştırılır?

PDF DOM ile çalışmak, geleneksel yaklaşımlara göre avantajlar sağlar.

// Example: Selective content modification based on criteria
using IronPdf;
using System.Linq;

PdfDocument report = PdfDocument.FromFile("quarterly-report.pdf");

foreach (var page in report.Pages)
{
    var textObjects = page.ObjectModel.TextObjects;

    // Highlight negative values in financial reports
    foreach (var text in textObjects)
    {
        if (text.Contents.StartsWith("-$") || text.Contents.Contains("Loss"))
        {
            text.Color = System.Drawing.Color.Red;
        }
    }
}

report.SaveAs("highlighted-report.pdf");
// Example: Selective content modification based on criteria
using IronPdf;
using System.Linq;

PdfDocument report = PdfDocument.FromFile("quarterly-report.pdf");

foreach (var page in report.Pages)
{
    var textObjects = page.ObjectModel.TextObjects;

    // Highlight negative values in financial reports
    foreach (var text in textObjects)
    {
        if (text.Contents.StartsWith("-$") || text.Contents.Contains("Loss"))
        {
            text.Color = System.Drawing.Color.Red;
        }
    }
}

report.SaveAs("highlighted-report.pdf");
Imports IronPdf
Imports System.Linq

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

For Each page In report.Pages
    Dim textObjects = page.ObjectModel.TextObjects

    ' Highlight negative values in financial reports
    For Each text In textObjects
        If text.Contents.StartsWith("-$") OrElse text.Contents.Contains("Loss") Then
            text.Color = System.Drawing.Color.Red
        End If
    Next
Next

report.SaveAs("highlighted-report.pdf")
$vbLabelText   $csharpLabel

Bu ayrıntılı kontrol HTML'den PDF'ye dönüşüm ile tek başına mümkün değildir, bu nedenle DOM erişimi gelişmiş PDF işleme için gereklidir.

Başka neler yapabileceğinizi görmek için hazır mısınız? Eğitim sayfasına buradan göz atın: PDF'leri Düzenle

Sıkça Sorulan Sorular

PDF manipülasyonunda ObjectModel özelliği ne için kullanılır?

IronPDF içindeki ObjectModel özelliği, PDF belgeleri içindeki metin, resim ve yol nesnelerine programlı erişim sunar. Geliştiricilerin, PDF DOM'daki HTML DOM elemanlarıyla çalışmaya benzer biçimde, öğeleri doğrudan okuyup değiştirmesine, çevirmesine, ölçeklemesine ve kaldırmasına imkan tanır.

C#'ta PDF DOM nesnelerine nasıl erişirim?

IronPDF kullanarak PDF DOM nesnelerine erişmek için önce hedef PDF belgenizi içe aktarın, ardından Sayfalar özelliğine erişin. Oradan herhangi bir sayfayı seçin ve ObjectModel özelliğini kullanın. Örneğin: var objs = IronPdf.ChromePdfRenderer.RenderUrlAsPdf("https://example.com").Pages.First().ObjectModel;

PDF DOM aracılığıyla hangi nesne türlerine erişebilirim?

IronPDF'in ObjectModel'ı üç ana nesne türünü içerir: Boyutları ve JPG olarak dışa aktarım özellikleri olan ImageObject, Doldurma/Renk darbel alakalı ve nokta içe adımları içeren PathObject ve Renk ve İçerik özelliklerini depolayan TextObject. Her biri, kendi özel içerik türlerine yönelik yollara sahiptir.

PDF belge içindeki metin içeriğini programlı bir şekilde değiştirebilir miyim?

Evet, IronPDF, TextObject'ün Contents özelliği aracılığıyla metin içeriğini değiştirme imkanını tanır. Metin nesnelerine ObjectModel üzerinden erişebilir, içeriklerini güncelleyebilir ve düzenlenmiş PDF belgesini yalnızca birkaç kod satırıyla kaydedebilirsiniz.

PDF belgelerinden resimleri nasıl dışa aktarırım?

IronPDF'in ImageObject, resimleri JPG bayt dizileri olarak dışa aktarmanızı sağlayan ExportBytesAsJpg metodunu sunar. Resime, ObjectModel özelliği aracılığıyla ulaşın ve bu metodu kullanarak resim verisini programatik olarak çıkartın.

Her DOM nesnesinin konumu hakkında hangi bilgiler mevcut?

IronPDF'in ObjectModel'ındaki her nesne, sayfa indeksi, sınırlayıcı kutu koordinatları, ölçek ve çevrim bilgilerini içerir. Bu konum verileri, PDF içindeki öğelerin konumlandırılması veya dönüştürülmesi için okunabilir ve değiştirilebilir.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget Indirmeler 18,332,619 | Sürüm: 2026.4 yeni yayınlandı
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizin PDF olduğunu izleyin.