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

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

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

C#'da PDF DOM nesnelerine erişmek için, PDF belgelerindeki metin, resim ve yol nesnelerine programlı erişim sağlayan ve öğeleri doğrudan okumanıza, değiştirmenize, çevirmenize, ölçeklendirmenize ve kaldırmanıza olanak tanıyan IronPDF'nin ObjectModel özelliğini kullanın.

Hızlı Başlangıç: IronPDF ile PDF DOM Öğelerine Eriş ve Güncelle

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

  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.

    var objs = IronPdf.ChromePdfRenderer.RenderUrlAsPdf("https://example.com").Pages.First().ObjectModel;
  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'lerde DOM Nesnelerine Nasıl Erişirim?

ObjectModel nesnesine PdfPage nesnesinden erişilir. İlk olarak, hedef PDF dosyasını içe aktarın ve Pages özelliğine erişin. Buradan, ObjectModel özelliğine erişmek için herhangi bir sayfayı seçin. Bu, HTML DOM öğeleri ile çalışmaya benzer şekilde PDF içeriği ile programlı olarak etkileşimi sağlar.

PDF DOM nesneleri ile çalışırken, PDF belgesinin altında yatan yapıya erişirsiniz. Buna metin öğeleri, resimler, vektör grafikleri (paths) ve PDF'nizin görsel sunumunu oluşturan diğer içerikler dahildir. IronPDF, C# uygulamalarıyla entegre olan nesne yönelimli bir PDF manipülasyonu 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ı, BoundingBox koordinatları ve dönüşüm özellikleri ile TextObjects koleksiyonunu gösteriyor

ObjectModel özelliği ImageObject, PathObject ve TextObject değerlerini içerir. Her nesne, sayfa dizini, sınırlayıcı kutu, Scale ve Translation hakkında bilgiler içerir. Bu bilgi değiştirilebilir. rendering options için, bu nesnelerin nasıl görüntüleneceğini özelleştirebilirsiniz. Özel kenar boşlukları ile çalışırken, nesne konumlandırmayı anlamak önemlidir.

<ImageObject>:

  • Height: Görüntünün yüksekliği
  • Width: Görüntünün genişliği
  • ExportBytesAsJpg: Görüntüyü JPG bayt dizisi olarak dışa aktarma yöntemi

<PathObject>:

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

<TextObject>:

  • Color: Metnin rengi
  • Contents: Asıl Text içeriği

Her nesne türü, içeriğinin tipine uygun olarak yöntemler ve özellikler içerir. Metin ve resimleri çıkarmanız veya belirli içeriği değiştirmeniz gerektiğinde, bu nesneler ayrıntılı denetim sağlar. Bu, form alanlarını programlı olarak değiştirmeniz gereken PDF formları ile çalışırken yararlıdır.

Glif Bilgilerini ve Sınırlayıcı Kutuları Nasıl Elde Edebilirim?

Özel yazı tipleriyle belirli glifleri belirtirken, sınırlayıcı kutu ve glif bilgilerini almak önemlidir. Mevcut PDF'lerde metin ve bit eşlemler çizerken IronPDF, piksel mükemmelliğinde konumlandırma için bu bilgileri sağlar.

ObjectModel nesnesinden PdfPage nesnesine erişin. Ardından TextObjects koleksiyonuna erişin. Glif 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
PDF glif nesne özelliklerini, koordinatları, sınırları ve metin içeriği ayrıntılarını gösteren hata ayıklayıcı

Glif bilgileri, konumlandırma verilerini, yazı tipi metriklerini ve karmaşık PDF manipülasyonları için karaktere özgü ayrıntıları içerir. Bu, karmaşık tipografi ve düzen gereksinimlerini ele alan PDF işleme uygulamaları oluşturmaya olanak tanır. Özel yazı tipleri ile çalışırken, bu glif düzeyinde erişim sistemler arasında doğru işleme sağlanır.


PDF Nesnelerini Nasıl Çevirebilirim?

Metin veya resim gibi öğeleri yeniden konumlandırarak PDF düzenini ayarlayın. Nesneleri Translate özelliğini değiştirerek taşıyın. Bu işlevsellik, IronPDF'nin PDF dönüştürme yeteneklerinin bir parçasıdır.

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

Nesneleri Çevirmek İçin Hangi Kodu Kullanırı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ı, 'Ortalanmış' metnini, orijinal konumundan 200 puan sağa ve 150 puan yukarı kaydırılmış olarak gösterir.

PDF çeviri karşılaştırması öncesinde ve sonrasında, metin konumlandırmanın ve formatlamanın korunduğunu gösterir

Çeviri işlemleri, konum dışında yalnızca nesnenin orijinal özelliklerini (yazı tipi, boyut ve renk gibi) değiştirmeden korur. Bu, görsel görünümü etkilemeden düzen ayarlamaları için idealdir. Bu özellik, dinamik olarak oluşturulan içeriği yeniden konumlandırırken başlık ve altbilgilerle çalışır.


PDF Nesnelerini Nasıl Ölçeklendiririm?

Scale özelliğini kullanarak PDF nesnelerinin boyutunu değiştirin. 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 boyutu azaltır. Ölçeklendirme, dinamik düzenler ve içeriği sayfa boyutlarına uyarlamak için önemlidir. Daha fazla örnek için PDF nesnelerini ölçeklendirme kılavuzunu inceleyin.

Örnek, bir resmi içeren HTML'yi işler. İlk ImageObject öğesine erişir ve Scale öğesine her iki eksen için 0,7 değerine sahip yeni bir PointF atayarak onu %70 oranında ölçeklendirir.

PDF Nesnelerini Ölçeklendirme Kodu 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

Eşit olmayan ölçeklendirme için X ve Y eksenlerine bağımsız olarak farklı ölçekleme faktörleri uygulayın. Bu, içeriği belirli boyutlara uyarlamak için kullanışlıdır. Özel kağıt boyutları ile çalışırken, ölçeklendirme içeriğin sayfa sınırları içinde kalmasını sağlar.

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

Çıktı, resmin orijinal boyutunun %70'ine ölçeklenmiş olarak gösterir.

PDF ölçekleme demosu: IRON logosu büyük boyuttan (sol) küçük boyuta (sağ) okla gösterilen dönüşüm

PDF Nesnelerini Nasıl Kaldırırım?

ImageObjects veya TextObjects gibi PDF DOM koleksiyonuna erişerek nesneleri kaldırın. Koleksiyonda RemoveAt'yi çağırın ve silinecek nesnenin indeksini aktarın. Bu, içeriği sansürlemek veya belgeleri basitleştirmek için kullanışlıdır. Daha fazla bilgi için PDF nesnelerini kaldırma örneği inceleyin.

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

Nesneleri Kaldırmak İçin Hangi Kod Kullanılmalıdır?

: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 Nesne Kaldırdığımda Ne Olur?

Kalan nesnelerin dizinleri, kaldırıldıktan sonra kayar. Birden fazla nesne kaldırılırken, doğru dizinleri korumak için bunları ters sırayla kaldırın. Bu teknik, gizli belgelerden metin sansürlediğinizde yardımcı olur.

Birden Fazla DOM İşlemini Nasıl Kombine Ederim?

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

Birleştirilmiş İşlemler Ne Zaman Kullanılmalıdır?

// 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 Durumları Nelerdir?

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

  1. Toplu Belge İşleme: Dökümanları işleyerek formatlama standartlarını sağlayın veya hassas içeriği kaldırın
  2. Dinamik Rapor Oluşturma: Gerçek zamanlı verilerle şablon PDF'leri değiştirerek mizanpajı kontrol edin
  3. İçerik Göçü: PDF'lerden içeriği çekip yeni mizanpajlarda yeniden düzenleyin
  4. Erişilebilirlik İyileştirmeleri: Belgeleri metin boyutunu, kontrastını veya boşlukları değiştirerek geliştirin

Bu teknikler, karmaşık değişiklikleri ele alan güçlü PDF işleme uygulamaları sağlar. Belge özelliklerini yönetmek için metadata yönetimi kılavuzuna bakın.

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

PDF DOM ile çalışmak, geleneksel yöntemlere 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ı denetim, yalnızca HTML'den PDF'ye dönüşüm ile mümkün değildir, bu da DOM erişimini sofistike PDF işleme için gerekli kılar.

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

Sıkça Sorulan Sorular

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

IronPDF'ün ObjectModel özelliği, PDF belgeleri içindeki metin, görüntü ve yol nesnelerine programatik erişim sağlar. Geliştiricilerin PDF DOM'daki ögeleri HTML DOM ögeleri ile çalışmaya benzer şekilde okumasına, değiştirmesine, çevirmesine, ölçeklemesine ve kaldırmasına olanak tanır.

C#'da PDF DOM nesnelerine nasıl erişebilirim?

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'ün ObjectModel'i üç ana nesne türünü içerir: ImageObject (Yükseklik, Genişlik ve ExportBytesAsJpg gibi özelliklerle), PathObject (Doldurma Rengi, Kontur Rengi ve Noktalarla) ve TextObject (Renk ve İçerikler özellikleriyle). Her biri belirli içerik türlerine yönelik yöntemler sunar.

Bir PDF belgesi içindeki metin içeriğini programlı olarak değiştirebilir miyim?

Evet, IronPDF, TextObject'ün Contents özelliği aracılığıyla metin içeriğini değiştirmenizi sağlar. ObjectModel aracılığıyla metin nesnelerine erişebilir, içeriklerini güncelleyebilir ve değiştirilmiş PDF belgesini yalnızca birkaç satır kodla kaydedebilirsiniz.

PDF belgelerinden görüntüleri nasıl dışa aktarabilirim?

IronPDF'ün ImageObject'i, JPG bayt dizileri olarak görüntüleri dışa aktarmanıza olanak tanıyan ExportBytesAsJpg metodunu sağlar. Görseli ObjectModel özelliği aracılığıyla erişin ve bu yöntemi kullanarak görüntü verisini programlı olarak çıkarın.

Her DOM nesnesinin konumuyla ilgili hangi bilgiler mevcut?

IronPDF'ün ObjectModel'inde her nesne, sayfa dizini, çerçeve koordinatları, ölçek ve çeviri gibi bilgileri içerir. Bu konumlandırma verileri, PDF içindeki elemanları yeniden konumlandırmak veya dönüştürmek için okunabilir ve değiştirilebilir.

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,014,616 | Sürüm: 2026.5 just released
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.