Como acessar todos os objetos DOM de um PDF em C#
Para acessar objetos DOM de PDF no C#, use a propriedade ObjectModel do IronPDF, que fornece acesso programático a texto, imagens e objetos de caminho dentro de documentos PDF, permitindo que você leia, modifique, traduza, dimensione e remova elementos diretamente.
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.
-
1Install IronPDF with NuGet Package Manager
-
2Copie e execute este trecho de código.
var objs = IronPdf.ChromePdfRenderer.RenderUrlAsPdf("https://example.com").Pages.First().ObjectModel;C# -
3Implante para testar em seu ambiente de produção.
Comece a usar IronPDF em seu projeto hoje com uma avaliação gratuita
Fluxo de trabalho mínimo (5 etapas)
- Baixe a biblioteca C# para acessar objetos DOM de PDF.
- Importe ou renderize o documento PDF desejado.
- Acesse a coleção
Pagesdo PDF e selecione a página desejada - Use a propriedade ObjectModel para visualizar e interagir com os objetos DOM.
- Salve ou exporte o documento PDF modificado.
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#.
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
A propriedade ObjectModel contém ImageObject, PathObject e TextObject. Cada objeto contém informações sobre seu índice de página, caixa delimitadora, Scale e Translation. 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 imagemWidth: Largura da imagemExportBytesAsJpg: Método para exportar a imagem como matriz de bytes JPG
<PathObject>:
FillColor: A cor de preenchimento do caminhoStrokeColor: A cor do contorno do caminhoPoints: Coleção de pontos que definem o caminho
<TextObject>:
Color: A cor do textoContents: O conteúdo real deText
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 de glifos e caixa delimitadora.
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()
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?
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")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.

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 escala para 70% atribuindo Scale um novo PointF com 0,7 para ambos os eixos.
Qual é o código para redimensionar objetos em 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");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")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.

O IronSuite desempenha um papel crucial nas nossas operações. Estas são ferramentas que aumentam a eficiência no negócio, incluindo a criação de plantas baixas e melhoria na gestão de inventário.
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?
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")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.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");
Quais são os casos de uso comuns para operações combinadas?
A combinação de operações DOM funciona bem para:
- Processamento em Lote de Documentos: Processe documentos para padronizar a formatação ou remover conteúdo sensível
- Geração Dinâmica de Relatórios: Modifique PDFs modelo com dados em tempo real enquanto controla o layout
- Migração de Conteúdo: Extraia e reorganize conteúdo de PDFs em novos layouts
- Melhorias de Acessibilidade: Aprimore documentos modificando o tamanho do texto, contraste ou 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.FillColor = IronSoftware.Drawing.Color.Red;
}
}
}
report.SaveAs("highlighted-report.pdf");
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.
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 é 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 bem estruturados e visualmente atraentes.