Como acessar todos os objetos DOM de um PDF em C
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.
-
Instale IronPDF com o Gerenciador de Pacotes NuGet
PM > Install-Package IronPdf -
Copie e execute este trecho de código.
var objs = IronPdf.ChromePdfRenderer.RenderUrlAsPdf("https://example.com").Pages.First().ObjectModel; -
Implante 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 de páginas do 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#.
: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
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 imagemWidth: Largura da imagemExportBytesAsJpg: Método para exportar a imagem como um array de bytes JPG
<PathObject>:
FillColor: A cor de preenchimento do caminhoStrokeColor: A cor do traço do caminhoPoints: Conjunto de pontos que definem o caminho
<TextObject>:
Color: A cor do textoContents: 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()
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")
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 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")
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.
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")
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")
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: Processar documentos para padronizar a formatação ou remover conteúdo sensível.
- Geração dinâmica de relatórios: Modifique modelos de PDF com dados em tempo real, controlando o layout.
- Migração de Conteúdo: Extrair e reorganizar o conteúdo de PDFs em novos layouts.
- 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")
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.

