# 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.
*as-heading:2(Início rápido: Acesse e atualize elementos DOM de PDF 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.
```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>Fluxo de trabalho mínimo (5 etapas)</h3>
<ol>
<li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronPdf">Baixe a biblioteca C# para acessar objetos DOM de PDF.</a></li>
<li>Importe ou renderize o documento PDF desejado.</li>
<li>Acesse a coleção <code>Pages</code> do PDF e selecione a página desejada</li>
<li>Use a propriedade <strong>ObjectModel</strong> para visualizar e interagir com os objetos DOM.</li>
<li>Salve ou exporte o documento PDF modificado.</li>
</ol>
</div>
## 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#.
```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="O depurador do IronPDF exibe uma coleção de TextObjects com coordenadas BoundingBox e propriedades de transformação." class="img-responsive add-shadow" />
</div>
</div>
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](https://ironpdf.com/how-to/rendering-options/) , você pode personalizar a forma como esses objetos são exibidos. Ao trabalhar com [margens personalizadas](https://ironpdf.com/how-to/custom-margins/) , é importante entender o posicionamento dos objetos.
**`<ImageObject>`:**
- `Height`: Altura da imagem
- `Width`: Largura da imagem
- `ExportBytesAsJpg`: Método para exportar a imagem como matriz de bytes JPG
**`<PathObject>`:**
- `FillColor`: A cor de preenchimento do caminho
- `StrokeColor`: A cor do contorno do caminho
- `Points`: Coleção de pontos que definem o caminho
**`<TextObject>`:**
- `Color`: A cor do texto
- `Contents`: O conteúdo real de `Text`
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](https://ironpdf.com/how-to/extract-text-and-images/) ou modificar conteúdo específico, esses objetos oferecem controle preciso. Isso é útil ao trabalhar com [formulários PDF](https://ironpdf.com/how-to/create-forms/) , 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](https://ironpdf.com/how-to/draw-text-and-bitmap/) 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.
```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="Depurador exibindo as propriedades do objeto glifo PDF, incluindo coordenadas, limites e detalhes do conteúdo do texto." class="img-responsive add-shadow" />
</div>
</div>
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](https://ironpdf.com/how-to/manage-fonts/) , esse acesso em nível de glifo garante uma renderização precisa em todos os sistemas.
<hr />
## 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](https://ironpdf.com/how-to/transform-pdf-pages/) 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](https://ironpdf.com/examples/translate-pdf-objects/) .
### Que código devo usar para traduzir objetos?
```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");
```
### 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.
<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="Comparação do antes e depois da tradução para PDF, mostrando a preservação do posicionamento e da formatação do texto." class="img-responsive add-shadow" />
</div>
</div>
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](https://ironpdf.com/how-to/headers-and-footers/) ao reposicionar conteúdo gerado dinamicamente.
<hr />
## 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](https://ironpdf.com/examples/scale-pdf-objects/) 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?
```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");
```
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](https://ironpdf.com/how-to/custom-paper-size/) , 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.
<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="Demonstração de redimensionamento de PDF: logotipo da IRON redimensionado de tamanho grande (esquerda) para tamanho pequeno (direita) com seta mostrando a transformação." class="img-responsive add-shadow" />
</div>
</div>
<hr />
## 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](https://ironpdf.com/examples/remove-pdf-objects/) .
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?
```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");
```
### 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](https://ironpdf.com/how-to/redact-text/) 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?
```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");
```
### 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:** Processe documentos para padronizar a formatação ou remover conteúdo sensível
2. **Geração Dinâmica de Relatórios:** Modifique PDFs modelo com dados em tempo real enquanto controla o layout
3. **Migração de Conteúdo:** Extraia e reorganize conteúdo de PDFs em novos layouts
4. **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](https://ironpdf.com/how-to/metadata/) .
## 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:
```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");
```
Esse controle granular não é possível apenas com [a conversão de HTML para PDF](https://ironpdf.com/how-to/html-to-pdf-responsive-css/) , 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](https://ironpdf.com/tutorials/csharp-edit-pdf-complete-tutorial/)
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.
Início rápido: Acesse e atualize elementos DOM de PDF 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.
1Install IronPDF with NuGet Package Manager
PM > Install-Package IronPdf
Install-Package IronPdf
2Copie e execute este trecho de código.
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
3Implante para testar em seu ambiente de produção.
Acesse a coleção Pages 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#.
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
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 imagem
Width: Largura da imagem
ExportBytesAsJpg: Método para exportar a imagem como matriz de bytes JPG
<PathObject>:
FillColor: A cor de preenchimento do caminho
StrokeColor: A cor do contorno do caminho
Points: Coleção de pontos que definem o caminho
<TextObject>:
Color: A cor do texto
Contents: O conteúdo real de Text
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();
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()
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 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")
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 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")
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.
Minha biblioteca favorita desse tipo é o IronPDF. Ele permite a manipulação rápida e eficiente de arquivos PDF. Além disso, possui muitos recursos valiosos, como a exportação para o formato PDF/A e a assinatura digital de documentos PDF.
Com o IronOCR, podemos economizar US$ 40.000 por ano em processamento manual, ao mesmo tempo que aumentamos a produtividade e liberamos recursos para tarefas de alto impacto. Eu o recomendo fortemente.
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 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")
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?
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")
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:
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")
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.