# 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` z IronPDF, która zapewnia programowy dostęp do tekstu, obrazów i obiektów ścieżek w dokumentach PDF, pozwalając ci na odczyt, modyfikację, tłumaczenie, skalowanie i usuwanie elementów bezpośrednio.
*as-heading:2(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.
```cs
:title=Access and modify PDF DOM objects in one line!
var objs = IronPdf.ChromePdfRenderer.RenderUrlAsPdf("https://example.com").Pages.First().ObjectModel;
```
<div class="hsg-featured-snippet">
<h3>Minimalny proces (5 kroków)</h3>
<ol>
<li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronPdf">Pobierz bibliotekę C# do uzyskiwania dostępu do obiektów DOM PDF</a></li>
<li>Importuj lub renderuj wybrany dokument PDF</li>
<li>Uzyskaj dostęp do kolekcji PDF <code>Pages</code> i wybierz żądaną stronę</li>
<li>Użyj właściwości <strong>ObjectModel</strong>, aby wyświetlić i wchodzić w interakcję z obiektami DOM</li>
<li>Zapisz lub wyeksportuj zmodyfikowany dokument PDF</li>
</ol>
</div>
## Jak uzyskać dostęp do obiektów DOM w PDF?
`ObjectModel` jest dostępny 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 inną zawartość składającą się na wizualną reprezentację twojego PDF. IronPDF zapewnia obiektowe podejście do manipulacji PDF, które integruje się z aplikacjami C#.
```csharp
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;
```
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/pdf/how-to/access-pdf-dom-object/debug.webp" alt="Debugger IronPDF pokazujący kolekcję TextObjects z współrzędnymi BoundingBox i właściwościami transformacji" class="img-responsive add-shadow" />
</div>
</div>
Właściwość `ObjectModel` zawiera `ImageObject`, `PathObject` i `TextObject`. Każdy obiekt zawiera informacje o swoim indeksie strony, obszarze ograniczenia, `Scale` i `Translation`. Informacje te mogą ulec zmianie. W [opcjach renderowania](https://ironpdf.com/how-to/rendering-options/) można dostosować sposób wyświetlania tych obiektów. Podczas pracy z [niestandardowymi marginesami](https://ironpdf.com/how-to/custom-margins/) ważne jest zrozumienie pozycjonowania obiektów.
**`<ImageObject>`:**
- `Height`: Wysokość obrazu
- `Width`: Szerokość obrazu
- `ExportBytesAsJpg`: Metoda eksportu obrazu jako tablicy bajtów JPG
**`<PathObject>`:**
- `FillColor`: Kolor wypełnienia ścieżki
- `StrokeColor`: Kolor obrysu ścieżki
- `Points`: Zbiór punktów definiujących ścieżkę
**`<TextObject>`:**
- `Color`: Kolor tekstu
- `Contents`: Rzeczywista zawartość `Text`
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](https://ironpdf.com/how-to/extract-text-and-images/) lub zmodyfikować konkretną treść, obiekty te zapewniają precyzyjną kontrolę. Jest to przydatne podczas pracy z [formularzami PDF,](https://ironpdf.com/how-to/create-forms/) 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](https://ironpdf.com/how-to/draw-text-and-bitmap/) 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 glyph i obszarze ograniczenia.
```cs
using IronPdf;
using System.Linq;
PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");
var glyph = pdf.Pages.First().ObjectModel.TextObjects.First().GetGlyphInfo();
```
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/pdf/how-to/access-pdf-dom-object/glyphinformation.webp" alt="Debugger pokazujący właściwości obiektu glifowego PDF, w tym współrzędne, granice i szczegóły treści tekstowej" class="img-responsive add-shadow" />
</div>
</div>
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](https://ironpdf.com/how-to/manage-fonts/) dostęp na poziomie glifów zapewnia dokładne renderowanie w różnych systemach.
<hr />
## Jak mogę przetłumaczyć obiekty PDF?
Dostosuj układ pliku PDF, zmieniając położenie elementów, takich jak tekst lub obrazy. Przesuń obiekty, zmieniając ich właściwość `Translate`. Ta funkcja jest częścią [możliwości transformacji plików PDF](https://ironpdf.com/how-to/transform-pdf-pages/) oferowanych przez IronPDF.
Poniższy przykład renderuje kod HTML przy użyciu CSS Flexbox w celu wyśrodkowania tekstu. Uzyskuje dostęp do pierwszej `TextObject` i tłumaczy ją, przypisują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](https://ironpdf.com/examples/translate-pdf-objects/).
### Jakiego kodu używam do tłumaczenia obiektów?
```csharp
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");
```
### 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.
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/pdf/how-to/access-pdf-dom-object/translate.webp" alt="Porównanie tłumaczenia pliku PDF przed i po, pokazujące zachowane rozmieszczenie tekstu i formatowanie" class="img-responsive add-shadow" />
</div>
</div>
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](https://ironpdf.com/how-to/headers-and-footers/) podczas zmiany położenia treści generowanych dynamicznie.
<hr />
## Jak skalować obiekty PDF?
Zmniejszaj obiekty PDF korzystając z 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](https://ironpdf.com/examples/scale-pdf-objects/) dotyczącym [skalowania obiektów PDF](https://ironpdf.com/examples/scale-pdf-objects/).
Przykład wyświetla kod HTML zawierający obraz. Uzyskuje dostęp do pierwszej `ImageObject` i skaluje ją do 70%, przypisując nową `Scale` z 0,7 dla obu osi do `PointF`.
### Jaki jest kod do skalowania obiektów PDF?
```csharp
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");
```
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](https://ironpdf.com/how-to/custom-paper-size/) 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.
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/pdf/how-to/access-pdf-dom-object/scale.webp" alt="Demonstracja skalowania pliku PDF: logo Iron przeskalowane z dużego rozmiaru (po lewej) do małego rozmiaru (po prawej) ze strzałką pokazującą transformację" class="img-responsive add-shadow" />
</div>
</div>
<hr />
## Jak mogę usunąć obiekty z pliku PDF?
Usuń obiekty, uzyskując dostęp do kolekcji DOM PDF, takich jak `ImageObjects` lub `TextObjects`. Wywołaj `RemoveAt` na kolekcji, przekazują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](https://ironpdf.com/examples/remove-pdf-objects/) [usuwania obiektów z pliku PDF](https://ironpdf.com/examples/remove-pdf-objects/).
Kod ładuje plik BeforeScale.pdf i usuwa pierwszy obraz z pierwszej strony.
### Jakiego kodu należy użyć do usunięcia obiektów?
```csharp
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");
```
### 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](https://ironpdf.com/how-to/redact-text/) 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?
```csharp
using IronPdf;
using System.Linq;
// Example of combining multiple DOM operations
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.FillColor = IronSoftware.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");
```
### Jakie są typowe zastosowania operacji łączonych?
Połączone operacje DOM sprawdzają się dobrze w przypadku:
1. **Przetwarzanie dokumentów w partiach:** Przetwarzaj dokumenty w celu standaryzacji formatowania lub usuwania wrażliwych treści
2. **Dynamiczne generowanie raportów:** Modyfikuj szablony PDF z danymi w czasie rzeczywistym, kontrolując układ
3. **Migracja treści:** Ekstrahuj i reorganizuj treści z PDF-ów do nowych układów
4. **Poprawa dostępności:** Popraw dokumenty, zmieniają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](https://ironpdf.com/how-to/metadata/).
## Jak dostęp do DOM wypada na tle innych metod manipulacji plikami PDF?
Praca z PDF DOM zapewnia przewagę nad tradycyjnymi metodami:
```csharp
using IronPdf;
using System.Linq;
// Example: Selective content modification based on criteria
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.FillColor = IronSoftware.Drawing.Color.Red;
}
}
}
report.SaveAs("highlighted-report.pdf");
```
Taka precyzyjna kontrola nie jest możliwa przy samej [konwersji HTML do PDF](https://ironpdf.com/how-to/html-to-pdf-responsive-css/), 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](https://ironpdf.com/tutorials/csharp-edit-pdf-complete-tutorial/)
Aby uzyskać dostęp do obiektów DOM PDF w C#, użyj właściwości ObjectModel z IronPDF, która zapewnia programowy dostęp do tekstu, obrazów i obiektów ścieżek w dokumentach PDF, pozwalając ci na odczyt, modyfikację, tłumaczenie, skalowanie i 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.
1Install IronPDF with NuGet Package Manager
PM > Install-Package IronPdf
Install-Package IronPdf
2Skopiuj i uruchom ten fragment kodu.
var objs = IronPdf.ChromePdfRenderer.RenderUrlAsPdf("https://example.com").Pages.First().ObjectModel;
var objs = IronPdf.ChromePdfRenderer.RenderUrlAsPdf("https://example.com").Pages.First().ObjectModel;
Dim objs = IronPdf.ChromePdfRenderer.RenderUrlAsPdf("https://example.com").Pages.First().ObjectModel
Dim objs = IronPdf.ChromePdfRenderer.RenderUrlAsPdf("https://example.com").Pages.First().ObjectModel
3Wdrożenie do testowania w środowisku produkcyjnym
Uzyskaj dostęp do kolekcji PDF Pages i wybierz żą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ępny 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 inną zawartość składającą się na wizualną reprezentację twojego PDF. IronPDF zapewnia obiektowe podejście do manipulacji PDF, które integruje się z aplikacjami C#.
using IronPdf;using System.Linq;// Instantiate RendererChromePdfRenderer renderer = new ChromePdfRenderer();// Create a PDF from a URLPdfDocument pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/");// Access DOM Objectsvar objects = pdf.Pages.First().ObjectModel;
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;
ImportsIronPdfImportsSystem.Linq' Instantiate RendererPrivate renderer As New ChromePdfRenderer()' Create a PDF from a URLPrivate pdf AsPdfDocument = renderer.RenderUrlAsPdf("https://ironpdf.com/")' Access DOM ObjectsPrivate 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 swoim indeksie strony, obszarze ograniczenia, Scale i Translation. 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ść obrazu
Width: Szerokość obrazu
ExportBytesAsJpg: Metoda eksportu obrazu jako tablicy bajtów JPG
<PathObject>:
FillColor: Kolor wypełnienia ścieżki
StrokeColor: Kolor obrysu ścieżki
Points: Zbiór punktów definiujących ścieżkę
<TextObject>:
Color: Kolor tekstu
Contents: Rzeczywista zawartość Text
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 glyph i obszarze ograniczenia.
using IronPdf;using System.Linq;PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");var glyph = pdf.Pages.First().ObjectModel.TextObjects.First().GetGlyphInfo();
using IronPdf;
using System.Linq;
PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");
var glyph = pdf.Pages.First().ObjectModel.TextObjects.First().GetGlyphInfo();
ImportsIronPdfImportsSystem.LinqDim pdf AsPdfDocument = PdfDocument.FromFile("invoice.pdf")Dim 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. Przesuń 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 pierwszej TextObject i tłumaczy ją, przypisują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?
using IronPdf;using System.Drawing;using System.Linq;// Setup the Renderervar 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 PDFPdfDocument pdf = renderer.RenderHtmlAsPdf(html);// Save the original PDF to see the "before" statepdf.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" statepdf.SaveAs("AfterTranslate.pdf");
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");
ImportsIronPdfImportsSystem.DrawingImportsSystem.Linq' Setup the RendererDim renderer As New ChromePdfRenderer()' We use CSS Flexbox to perfectly center the text vertically and horizontally.Dim html AsString = "<div style='display: flex; justify-content: center; align-items: center; font-size: 48px;'> Centered</div>"' Render the HTML to a PDFDim pdf AsPdfDocument = renderer.RenderHtmlAsPdf(html)' Save the original PDF to see the "before" statepdf.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" statepdf.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?
Zmniejszaj obiekty PDF korzystając z 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 pierwszej ImageObject i skaluje ją do 70%, przypisując nową Scale z 0,7 dla obu osi do PointF.
Jaki jest kod do skalowania obiektów PDF?
using IronPdf;using System.Linq;// Setup the Renderervar 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 PDFPdfDocument pdf = renderer.RenderHtmlAsPdf(html);// Save the PDF before scaling for comparisonpdf.SaveAs("BeforeScale.pdf");// Access the first image object on the first pagevar 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 resultpdf.SaveAs("AfterScale.pdf");
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");
ImportsIronPdfImportsSystem.LinqImportsSystem.Drawing' Setup the RendererDim renderer As New ChromePdfRenderer()' The image is placed in a div to give it some space on the page.Dim html AsString = "<img src='https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTi8LuOR6_A98euPLs-JRwoLU7Nc31nVP15rw&s'>"' Render the HTML to a PDFDim pdf AsPdfDocument = renderer.RenderHtmlAsPdf(html)' Save the PDF before scaling for comparisonpdf.SaveAs("BeforeScale.pdf")' Access the first image object on the first pageDim 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 resultpdf.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.
Moją ulubioną biblioteką tego typu jest IronPDF. Umożliwia ona szybkie i efektywne manipulowanie plikami PDF. Posiada także wiele cennych funkcji, takich jak eksport do formatu PDF/A i cyfrowe podpisywanie dokumentów PDF.
IronOCR pozwala nam oszczędzić 40 000 USD rocznie na ręcznym przetwarzaniu, jednocześnie zwiększając produktywność i uwalniając zasoby do zadań o wysokim wpływie. Gorąco polecam.
Usuń obiekty, uzyskując dostęp do kolekcji DOM PDF, takich jak ImageObjects lub TextObjects. Wywołaj RemoveAt na kolekcji, przekazują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ładzieusuwania 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?
using IronPdf;using System.Linq;// Load the PDF file we created in the Scale examplePdfDocument pdf = PdfDocument.FromFile("BeforeScale.pdf");// Access DOM Objectsvar objects = pdf.Pages.First().ObjectModel;// Remove first imageobjects.ImageObjects.RemoveAt(0);// Save the modified PDFpdf.SaveAs("removedFirstImage.pdf");
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");
ImportsIronPdfImportsSystem.Linq' Load the PDF file we created in the Scale exampleDim pdf AsPdfDocument = PdfDocument.FromFile("BeforeScale.pdf")' Access DOM ObjectsDim objects = pdf.Pages.First().ObjectModel' Remove first imageobjects.ImageObjects.RemoveAt(0)' Save the modified PDFpdf.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?
using IronPdf;using System.Linq;// Example of combining multiple DOM operationsPdfDocument pdf = PdfDocument.FromFile("complex-document.pdf");// Iterate through all pagesforeach (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.FillColor = IronSoftware.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");
using IronPdf;
using System.Linq;
// Example of combining multiple DOM operations
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.FillColor = IronSoftware.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");
ImportsIronPdfImportsSystem.Linq' Example of combining multiple DOM operationsDim pdf AsPdfDocument = PdfDocument.FromFile("complex-document.pdf")' Iterate through all pagesFor 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.FillColor = IronSoftware.Drawing.Color.Red End If Next ' Scale down all images by 50% For Each imgObj In objects.ImageObjects imgObj.Scale = New System.Drawing.PointF(0.5F, 0.5F) NextNextpdf.SaveAs("processed-document.pdf")
Imports IronPdf
Imports System.Linq
' Example of combining multiple DOM operations
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.FillColor = IronSoftware.Drawing.Color.Red
End If
Next
' Scale down all images by 50%
For Each imgObj In objects.ImageObjects
imgObj.Scale = New System.Drawing.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 partiach: Przetwarzaj dokumenty w celu standaryzacji formatowania lub usuwania wrażliwych treści
Dynamiczne generowanie raportów: Modyfikuj szablony PDF z danymi w czasie rzeczywistym, kontrolując układ
Migracja treści: Ekstrahuj i reorganizuj treści z PDF-ów do nowych układów
Poprawa dostępności: Popraw dokumenty, zmieniają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:
using IronPdf;using System.Linq;// Example: Selective content modification based on criteriaPdfDocument 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.FillColor = IronSoftware.Drawing.Color.Red; } }}report.SaveAs("highlighted-report.pdf");
using IronPdf;
using System.Linq;
// Example: Selective content modification based on criteria
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.FillColor = IronSoftware.Drawing.Color.Red;
}
}
}
report.SaveAs("highlighted-report.pdf");
ImportsIronPdfImportsSystem.Linq' Example: Selective content modification based on criteriaDim report AsPdfDocument = 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.FillColor = IronSoftware.Drawing.Color.Red End If NextNextreport.SaveAs("highlighted-report.pdf")
Imports IronPdf
Imports System.Linq
' Example: Selective content modification based on criteria
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.FillColor = IronSoftware.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.
What is the method to scale PDF objects using IronPDF?
PDF objects can be scaled using the `Scale` property in IronPDF's `ObjectModel`, allowing you to adjust the dimensions of elements such as images or text by specifying scale factors.
How can I translate PDF objects in IronPDF?
Translate PDF objects in IronPDF by adjusting their `Translate` property. This repositioning enables layout adjustments without altering the visual style of the objects.
How do I distinguish CAD features in a PDF without layers using IronPDF?
IronPDF allows you to differentiate CAD features without layers by analyzing the `PathObject` attributes such as `StrokeWidth`, `LineCap`, and `DashPattern`.
What are some common use cases for combined PDF DOM operations using IronPDF?
Combined PDF DOM operations are useful for batch document processing, dynamic report generation, content migration, and improving document accessibility, allowing complex modifications using IronPDF.
Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.