Jak uzyskać dostęp do wszystkich obiektów DOM PDF w C
Aby uzyskać dostęp do obiektów DOM PDF w C#, użyj właściwości ObjectModel IronPDF, która zapewnia programatyczny dostęp do tekstu, obrazów i obiektów ścieżek w dokumentach PDF, umożliwiając czytanie, modyfikowanie, tłumaczenie, skalowanie oraz usuwanie elementów bezpośrednio.
Szybki Start: Uzyskaj i zaktualizuj elementy DOM PDF za pomocą IronPDF
Rozpocznij manipulację dokumentami PDF, korzystając z funkcji dostępu do DOM IronPDF. Ten przewodnik pokazuje, jak uzyskać dostęp do DOM PDF, wybrać stronę i zmodyfikować obiekty tekstowe. Załaduj swój PDF, uzyskaj dostęp do wybranej strony i zaktualizuj zawartość w kilku linijkach kodu.
-
Install IronPDF with NuGet Package Manager
PM > Install-Package IronPdf -
Skopiuj i uruchom ten fragment kodu.
var objs = IronPdf.ChromePdfRenderer.RenderUrlAsPdf("https://example.com").Pages.First().ObjectModel; -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Pobierz bibliotekę C# do uzyskiwania dostępu do obiektów DOM PDF
- Importuj lub renderuj wybrany dokument PDF
- Uzyskaj dostęp do kolekcji stron PDF i wybierz pożądaną stronę
- Użyj właściwości ObjectModel, aby wyświetlić i wchodzić w interakcję z obiektami DOM
- Zapisz lub wyeksportuj zmodyfikowany dokument PDF
Jak uzyskać dostęp do obiektów DOM w PDF?
ObjectModel jest dostępne z obiektu PdfPage. Najpierw zaimportuj docelowy PDF i uzyskaj dostęp do jego właściwości Pages. Stamtąd wybierz dowolną stronę, aby uzyskać dostęp do właściwości ObjectModel. To umożliwia programatyczną interakcję z zawartością PDF, podobnie jak praca z elementami DOM HTML.
Pracując z obiektami DOM PDF, uzyskujesz dostęp do podstawowej struktury dokumentu PDF. Obejmuje to elementy tekstowe, obrazy, grafikę wektorową (paths) i inne treści, które tworzą wizualną reprezentację twojego PDF. IronPDF zapewnia obiektowe podejście do manipulacji PDF, które integruje się z aplikacjami C#.
: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
Właściwość ObjectModel zawiera ImageObject, PathObject i TextObject. Każdy obiekt zawiera informacje o indeksie strony, polu powiązania, skali i tłumaczeniu. Informacje te mogą ulec zmianie. W opcjach renderowania można dostosować sposób wyświetlania tych obiektów. Podczas pracy z niestandardowymi marginesami ważne jest zrozumienie pozycjonowania obiektów.
<ImageObject>:
Height: Wysokość obrazuWidth: Szerokość obrazuExportBytesAsJpg: Metoda eksportu obrazu jako tablica bajtów JPG
<PathObject>:
FillColor: Kolor wypełnienia ścieżkiStrokeColor: Kolor konturu ścieżkiPoints: Kolekcja punktów określających ścieżkę
<TextObject>:
Color: Kolor tekstuContents: Faktyczna zawartość tekstowa
Każdy typ obiektu udostępnia metody i właściwości dostosowane do swojego typu zawartości. Gdy trzeba wyodrębnić tekst i obrazy lub zmodyfikować konkretną treść, obiekty te zapewniają precyzyjną kontrolę. Jest to przydatne podczas pracy z formularzami PDF, w których konieczna jest programowa manipulacja polami formularza.
Jak mogę pobrać informacje o glifach i prostokątach ograniczających?
Podczas określania dokładnych glifów przy użyciu niestandardowych czcionek niezbędne jest pobranie informacji o ramce ograniczającej i glifach. IronPDF udostępnia te informacje w celu uzyskania idealnego pozycjonowania pikseli podczas rysowania tekstu i map bitowych na istniejących plikach PDF.
Uzyskaj dostęp do ObjectModel z obiektu PdfPage. Następnie uzyskaj dostęp do kolekcji TextObjects. Wywołaj metodę GetGlyphInfo, aby pobrać informacje o glifie i polu powiązania.
: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()
Informacje o glifach obejmują dane dotyczące pozycjonowania, metrykę czcionek oraz szczegóły dotyczące poszczególnych znaków, umożliwiające zaawansowaną edycję plików PDF. Umożliwia to tworzenie aplikacji do przetwarzania plików PDF, które obsługują złożone wymagania typograficzne i dotyczące układu. W przypadku pracy z niestandardowymi czcionkami dostęp na poziomie glifów zapewnia dokładne renderowanie w różnych systemach.
Jak mogę przetłumaczyć obiekty PDF?
Dostosuj układ pliku PDF, zmieniając położenie elementów, takich jak tekst lub obrazy. Przesuwaj obiekty, zmieniając ich właściwość Translate. Ta funkcja jest częścią możliwości transformacji plików PDF oferowanych przez IronPDF.
Poniższy przykład renderuje kod HTML przy użyciu CSS Flexbox w celu wyśrodkowania tekstu. Uzyskuje dostęp do pierwszego TextObject i tłumaczy go, przydzielając nowy PointF do właściwości Translate. Spowoduje to przesunięcie tekstu o 200 punktów w prawo i 150 punktów w górę. Aby zapoznać się z innymi przykładami, odwiedź stronę z przykładami tłumaczenia obiektów PDF.
Jakiego kodu używam do tłumaczenia obiektów?
: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")
Jak wygląda wynik tłumaczenia?
Wynik pokazuje, że tekst "Centered" został przesunięty o 200 punktów w prawo i 150 punktów w górę w stosunku do pierwotnej pozycji.
Operacje tłumaczenia zachowują oryginalne właściwości obiektu, takie jak czcionka, rozmiar i kolor, zmieniając jedynie jego położenie. Jest to idealne rozwiązanie do dostosowywania układu bez wpływu na wygląd wizualny. Ta funkcja współpracuje z nagłówkami i stopkami podczas zmiany położenia treści generowanych dynamicznie.
Jak skalować obiekty PDF?
Przeskaluj obiekty PDF, używając właściwości Scale. Ta właściwość działa jak mnożnik. Wartości większe od 1 zwiększają rozmiar, natomiast wartości między 0 a 1 go zmniejszają. Skalowanie jest niezbędne w przypadku dynamicznych układów i dostosowywania treści do wymiarów strony. Więcej przykładów można znaleźć w przewodniku dotyczącym skalowania obiektów PDF.
Przykład wyświetla kod HTML zawierający obraz. Uzyskuje dostęp do pierwszego ImageObject i skaluje go do 70%, przypisując Scale nowy PointF z 0.7 dla obu osi.
Jaki jest kod do skalowania obiektów PDF?
: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")
Zastosuj różne współczynniki skalowania do osi X i Y niezależnie od siebie, aby uzyskać skalowanie niejednolite. Jest to przydatne do dopasowania treści do określonych wymiarów. W przypadku pracy z niestandardowymi rozmiarami papieru skalowanie pomaga zapewnić, że treść mieści się w granicach strony.
Jak wygląda skalowanie w praktyce?
Wynik pokazuje obraz skalowany do 70% jego pierwotnego rozmiaru.
Jak mogę usunąć obiekty z pliku PDF?
Usuń obiekty, uzyskując dostęp do kolekcji DOM PDF jak ImageObjects lub TextObjects. Wywołaj RemoveAt na kolekcji, podając indeks obiektu do usunięcia. Jest to przydatne do redagowania treści lub upraszczania dokumentów. Więcej informacji można znaleźć w przykładzie usuwania obiektów z pliku PDF.
Kod ładuje plik BeforeScale.PDF i usuwa pierwszy obraz z pierwszej strony.
Jakiego kodu należy użyć do usunięcia obiektów?
: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")
Co się stanie, gdy usunę wiele obiektów?
Indeksy pozostałych obiektów Shiftują się po usunięciu. W przypadku usuwania wielu obiektów należy usuwać je w odwrotnej kolejności, aby zachować prawidłowe indeksy. Ta technika pomaga podczas redagowania tekstu z dokumentów zawierających informacje wrażliwe.
Jak połączyć wiele operacji DOM?
Dostęp do DOM w IronPDF umożliwia zaawansowane procesy przetwarzania dokumentów. Łączenie operacji w celu wykonywania złożonych przekształceń:
Kiedy należy stosować operacje złożone?
// 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")
Jakie są typowe zastosowania operacji łączonych?
Połączone operacje DOM sprawdzają się dobrze w przypadku:
- Przetwarzanie dokumentów w trybie wsadowym: przetwarzanie dokumentów w celu ujednolicenia formatowania lub usunięcia treści wrażliwych
- Dynamiczne generowanie raportów: Modyfikuj szablony PDF przy użyciu danych w czasie rzeczywistym, zachowując kontrolę nad układem
- Migracja treści: Wyodrębnianie i reorganizacja treści z plików PDF do nowych układów
- Ulepszenia dostępności: Ulepszaj dokumenty, modyfikując rozmiar tekstu, kontrast lub odstępy
Techniki te umożliwiają tworzenie zaawansowanych aplikacji do przetwarzania plików PDF, które obsługują złożone modyfikacje. Aby zarządzać właściwościami dokumentów, zapoznaj się z przewodnikiem po zarządzaniu metadanymi.
Jak dostęp do DOM wypada na tle innych metod manipulacji plikami PDF?
Praca z PDF DOM zapewnia przewagę nad tradycyjnymi metodami:
// 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")
Taka precyzyjna kontrola nie jest możliwa przy samej konwersji HTML do PDF, co sprawia, że dostęp do DOM jest niezbędny do zaawansowanego przetwarzania plików PDF.
Gotowy, aby sprawdzić, co jeszcze możesz zrobić? Zapoznaj się ze stroną z samouczkiem tutaj: Edytuj pliki PDF
Często Zadawane Pytania
Do czego służy właściwość ObjectModel w manipulacji plikami PDF?
Właściwość ObjectModel w IronPDF zapewnia programowy dostęp do obiektów tekstowych, graficznych i ścieżek w dokumentach PDF. Pozwala programistom na odczytywanie, modyfikowanie, przekształcanie, skalowanie i usuwanie elementów bezpośrednio z DOM pliku PDF, podobnie jak w przypadku pracy z elementami DOM HTML.
Jak uzyskać dostęp do obiektów DOM pliku PDF w języku C#?
Aby uzyskać dostęp do obiektów DOM pliku PDF za pomocą IronPDF, należy najpierw zaimportować docelowy dokument PDF, a następnie uzyskać dostęp do jego właściwości Pages. Następnie należy wybrać dowolną stronę i użyć właściwości ObjectModel. Na przykład: var objs = IronPdf.ChromePdfRenderer.RenderUrlAsPdf("https://example.com").Pages.First().ObjectModel;
Do jakich typów obiektów mam dostęp za pośrednictwem PDF DOM?
Model obiektowy IronPDF zawiera trzy główne typy obiektów: ImageObject (z właściwościami takimi jak Height, Width i ExportBytesAsJpg), PathObject (z właściwościami FillColor, StrokeColor i Points) oraz TextObject (z właściwościami Color i Contents). Każdy z nich udostępnia metody dostosowane do konkretnego typu zawartości.
Czy mogę programowo modyfikować treść tekstową w dokumencie PDF?
Tak, IronPDF umożliwia modyfikowanie treści tekstowej za pomocą właściwości Contents obiektu TextObject. Możesz uzyskać dostęp do obiektów tekstowych za pośrednictwem ObjectModel, zaktualizować ich zawartość i zapisać zmodyfikowany dokument PDF za pomocą zaledwie kilku linii kodu.
Jak mogę wyeksportować obrazy z dokumentów PDF?
Obiekt ImageObject w IronPDF udostępnia metodę ExportBytesAsJpg, która pozwala eksportować obrazy jako tablice bajtów JPG. Uzyskaj dostęp do obrazu za pomocą właściwości ObjectModel i użyj tej metody, aby programowo wyodrębnić dane obrazu.
Jakie informacje są dostępne na temat położenia każdego obiektu DOM?
Każdy obiekt w modelu obiektowym IronPDF zawiera informacje o indeksie strony, współrzędnych ramki ograniczającej, skali i przesunięciu. Dane dotyczące położenia można zarówno odczytywać, jak i modyfikować w celu zmiany położenia lub przekształcenia elementów w pliku PDF.

