Como acessar todos os objetos DOM de um PDF usando o IronPDF em C# | IronPDF

Como acessar todos os objetos DOM de um PDF em C

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

Para acessar objetos DOM de PDF em C#, use a propriedade ObjectModel do IronPDF, que fornece acesso programático a objetos de texto, imagens e caminhos em documentos PDF, permitindo ler, editar PDF, traduzir, redimensionar e remover elementos diretamente.

Início Rápido: Editar PDF — Acesse e Atualize Elementos DOM com o IronPDF

Comece a manipular documentos PDF usando os recursos de acesso ao DOM do IronPDF. Este guia mostra como acessar o DOM do PDF, selecionar uma página e modificar objetos de texto. Carregue seu PDF, acesse a página desejada e atualize o conteúdo com algumas linhas de código.

  1. Instale IronPDF com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronPdf
  2. Copie e execute este trecho de código.

    var objs = IronPdf.ChromePdfRenderer.RenderUrlAsPdf("https://example.com").Pages.First().ObjectModel;
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronPDF em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Como acessar objetos DOM em PDFs?

O ObjectModel é acessado a partir do objeto PdfPage. Primeiro, importe o PDF de destino e acesse sua propriedade Pages. A partir daí, selecione qualquer página para acessar a propriedade ObjectModel. Isso permite a interação programática com o conteúdo do PDF, de forma semelhante ao trabalho com elementos DOM do HTML.

Ao trabalhar com objetos DOM de PDF, você acessa a estrutura subjacente do documento PDF. Isso inclui elementos de texto, imagens, gráficos vetoriais (paths) e outros conteúdos que compõem a representação visual do seu PDF. O IronPDF oferece uma abordagem orientada a objetos para manipulação de PDFs que se integra a aplicativos 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
$vbLabelText   $csharpLabel
O depurador do IronPDF exibe uma coleção de TextObjects com coordenadas BoundingBox e propriedades de transformação.

A propriedade ObjectModel contém ImageObject, PathObject e TextObject. Cada objeto contém informações sobre seu índice de página, caixa delimitadora, escala e translação. Esta informação pode ser modificada. Nas opções de renderização , você pode personalizar a forma como esses objetos são exibidos. Ao trabalhar com margens personalizadas , é importante entender o posicionamento dos objetos.

<ImageObject>:

  • Height: Altura da imagem
  • Width: Largura da imagem
  • ExportBytesAsJpg: Método para exportar a imagem como um array de bytes JPG

<PathObject>:

  • FillColor: A cor de preenchimento do caminho
  • StrokeColor: A cor do traço do caminho
  • Points: Conjunto de pontos que definem o caminho

<TextObject>:

  • Color: A cor do texto
  • Contents: O conteúdo do texto propriamente dito

Cada tipo de objeto fornece métodos e propriedades específicos para o seu tipo de conteúdo. Quando você precisa extrair texto e imagens ou modificar conteúdo específico, esses objetos oferecem controle preciso. Isso é útil ao trabalhar com formulários PDF , onde é necessário manipular os campos do formulário programaticamente.

Como posso obter informações sobre glifos e caixas delimitadoras?

Ao especificar glifos exatos com fontes personalizadas, é essencial obter informações sobre a caixa delimitadora e os glifos. O IronPDF fornece essas informações para um posicionamento perfeito em pixels ao desenhar texto e bitmaps em PDFs existentes.

Acesse o ObjectModel a partir do objeto PdfPage. Em seguida, acesse a coleção TextObjects. Chame o método GetGlyphInfo para recuperar informações sobre o glifo e a caixa delimitadora.

: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
Depurador exibindo as propriedades do objeto glifo PDF, incluindo coordenadas, limites e detalhes do conteúdo do texto.

As informações dos glifos incluem dados de posicionamento, métricas da fonte e detalhes específicos de cada caractere para manipulação avançada de PDFs. Isso permite a criação de aplicativos de processamento de PDF que lidam com requisitos complexos de tipografia e layout. Ao trabalhar com fontes personalizadas , esse acesso em nível de glifo garante uma renderização precisa em todos os sistemas.


Como posso traduzir objetos em um PDF?

Ajuste o layout do PDF reposicionando elementos como texto ou imagens. Mova objetos alterando sua propriedade Translate. Essa funcionalidade faz parte dos recursos de transformação de PDF do IronPDF.

O exemplo abaixo renderiza HTML usando CSS Flexbox para centralizar o texto. Ele acessa o primeiro TextObject e o traduz atribuindo um novo PointF à propriedade Translate. Isso desloca o texto 200 pontos para a direita e 150 pontos para cima. Para mais exemplos, visite a página de exemplos de tradução de objetos PDF .

Que código devo usar para traduzir objetos?

: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

Qual é o resultado da tradução?

O resultado mostra "Centralizado" deslocado 200 pontos para a direita e 150 pontos para cima em relação à sua posição original.

Comparação do antes e depois da tradução para PDF, mostrando a preservação do posicionamento e da formatação do texto.

As operações de tradução mantêm as propriedades originais do objeto, como fonte, tamanho e cor, alterando apenas a posição. Isso é ideal para ajustes de layout sem afetar a aparência visual. Essa funcionalidade funciona com cabeçalhos e rodapés ao reposicionar conteúdo gerado dinamicamente.


Como redimensionar objetos em PDF?

Redimensione objetos PDF usando a propriedade Scale. Essa propriedade funciona como um multiplicador. Valores maiores que 1 aumentam o tamanho, enquanto valores entre 0 e 1 o diminuem. O dimensionamento é essencial para layouts dinâmicos e para ajustar o conteúdo às dimensões da página. Consulte o guia de objetos PDF em escala para obter mais exemplos.

O exemplo gera um HTML contendo uma imagem. Ele acessa o primeiro ImageObject e o dimensiona para 70% atribuindo a Scale um novo PointF com 0,7 para ambos os eixos.

Qual é o código para redimensionar objetos em 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")
$vbLabelText   $csharpLabel

Para obter uma escala não uniforme, aplique fatores de escala diferentes aos eixos X e Y de forma independente. Isso é útil para ajustar o conteúdo a dimensões específicas. Ao trabalhar com tamanhos de papel personalizados , o redimensionamento ajuda a garantir que o conteúdo caiba dentro dos limites da página.

Como o escalonamento se parece na prática?

O resultado mostra a imagem redimensionada para 70% do seu tamanho original.

Demonstração de redimensionamento de PDF: logotipo da IRON redimensionado de tamanho grande (esquerda) para tamanho pequeno (direita) com seta mostrando a transformação.

Como posso remover objetos de um PDF?

Remova objetos acessando a coleção DOM do PDF como ImageObjects ou TextObjects. Chame RemoveAt na coleção, passando o índice do objeto a ser excluído. Isso é útil para redigir conteúdo ou simplificar documentos. Saiba mais no exemplo de remoção de objetos PDF .

O código carrega o arquivo BeforeScale.pdf e remove a primeira imagem da primeira página.

Que código devo usar para remover objetos?

: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

O que acontece quando removo vários objetos?

Os índices dos objetos restantes mudam após a remoção. Ao remover vários objetos, remova-os na ordem inversa para manter os índices corretos. Essa técnica é útil quando você precisa ocultar texto de documentos confidenciais.

Como combinar múltiplas operações no DOM?

O acesso ao DOM do IronPDF possibilita fluxos de trabalho sofisticados para o processamento de documentos. Combinar operações para transformações complexas:

Quando devo usar operações combinadas?

// 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

Quais são os casos de uso comuns para operações combinadas?

A combinação de operações DOM funciona bem para:

  1. Processamento em lote de documentos: Processar documentos para padronizar a formatação ou remover conteúdo sensível.
  2. Geração dinâmica de relatórios: Modifique modelos de PDF com dados em tempo real, controlando o layout.
  3. Migração de Conteúdo: Extrair e reorganizar o conteúdo de PDFs em novos layouts.
  4. Melhorias de acessibilidade: Aprimore os documentos modificando o tamanho do texto, o contraste ou o espaçamento.

Essas técnicas possibilitam o uso de aplicativos poderosos de processamento de PDF, capazes de lidar com modificações complexas. Para gerenciar as propriedades do documento, consulte o guia de gerenciamento de metadados .

Como o acesso ao DOM se compara a outros métodos de manipulação de PDF?

Trabalhar com o DOM do PDF oferece vantagens em relação às abordagens tradicionais:

// 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

Esse controle granular não é possível apenas com a conversão de HTML para PDF , tornando o acesso ao DOM essencial para o processamento sofisticado de PDFs.

Pronto para ver o que mais você pode fazer? Confira a página de tutoriais aqui: Editar PDFs

Perguntas frequentes

Para que serve a propriedade ObjectModel na manipulação de PDFs?

A propriedade ObjectModel no IronPDF fornece acesso programático a objetos de texto, imagens e caminhos em documentos PDF. Ela permite que os desenvolvedores leiam, modifiquem, traduzam, redimensionem e removam elementos diretamente do DOM do PDF, de forma semelhante ao trabalho com elementos do DOM HTML.

Como posso acessar objetos DOM de um PDF em C#?

Para acessar objetos DOM de um PDF usando o IronPDF, primeiro importe o documento PDF desejado e, em seguida, acesse a propriedade Pages. A partir daí, selecione qualquer página e use a propriedade ObjectModel. Por exemplo: var objs = IronPDF.ChromePdfRenderer.RenderUrlAsPdf("https://example.com").Pages.First().ObjectModel;

Que tipos de objetos posso acessar através do DOM do PDF?

O ObjectModel do IronPDF contém três tipos principais de objetos: ImageObject (com propriedades como Height, Width e ExportBytesAsJpg), PathObject (com FillColor, StrokeColor e Points) e TextObject (com propriedades Color e Contents). Cada um fornece métodos específicos para seu tipo de conteúdo.

Posso modificar o conteúdo de texto dentro de um documento PDF programaticamente?

Sim, o IronPDF permite modificar o conteúdo do texto através da propriedade Contents do TextObject. Você pode acessar objetos de texto através do ObjectModel, atualizar seu conteúdo e salvar o documento PDF modificado com apenas algumas linhas de código.

Como posso exportar imagens de documentos PDF?

O objeto ImageObject do IronPDF fornece o método ExportBytesAsJpg, que permite exportar imagens como matrizes de bytes JPG. Acesse a imagem através da propriedade ObjectModel e use este método para extrair os dados da imagem programaticamente.

Que informações estão disponíveis sobre a posição de cada objeto DOM?

Cada objeto no ObjectModel do IronPDF contém informações sobre seu índice de página, coordenadas da caixa delimitadora, escala e translação. Esses dados de posicionamento podem ser lidos e modificados para reposicionar ou transformar elementos dentro do PDF.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 18,332,619 | Versão: 2026.4 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronPdf
executar um exemplo Veja seu HTML se transformar em um PDF.