Cómo acceder a todos los objetos DOM de PDF utilizando IronPDF en C# | IronPDF

Cómo acceder a todos los objetos DOM de PDF en C

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

Para acceder a objetos DOM PDF en C#, utilice la propiedad ObjectModel de IronPDF, que proporciona acceso programático a objetos de texto, imágenes y rutas dentro de documentos PDF, lo que le permite leer, modificar, traducir, escalar y eliminar elementos directamente.

Inicio rápido: acceder y actualizar elementos DOM de PDF con IronPDF

Empiece a manipular documentos PDF utilizando las funciones de acceso DOM de IronPDF. Esta guía muestra cómo acceder al DOM del PDF, seleccionar una página y modificar objetos de texto. Cargue su PDF, acceda a la página deseada y actualice el contenido con unas pocas líneas de código.

  1. Instala IronPDF con el Administrador de Paquetes NuGet

    PM > Install-Package IronPdf
  2. Copie y ejecute este fragmento de código.

    var objs = IronPdf.ChromePdfRenderer.RenderUrlAsPdf("https://example.com").Pages.First().ObjectModel;
  3. Despliegue para probar en su entorno real

    Comienza a usar IronPDF en tu proyecto hoy mismo con una prueba gratuita

    arrow pointer

¿Cómo acceder a objetos DOM en PDF?

Se accede al ObjectModel desde el objeto PdfPage. Primero, importe el PDF de destino y acceda a su propiedad Pages. Desde allí, seleccione cualquier página para acceder a la propiedad ObjectModel. Esto permite interactuar con el contenido PDF mediante programación, de forma similar al trabajo con elementos DOM de HTML.

Cuando se trabaja con objetos PDF DOM, se accede a la estructura subyacente del documento PDF. Esto incluye elementos de texto, imágenes, gráficos vectoriales (paths) y otro contenido que compone la representación visual de su PDF. IronPDF ofrece un enfoque orientado a objetos para la manipulación de PDF que se integra con aplicaciones 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;
$vbLabelText   $csharpLabel
Depurador IronPDF mostrando la colección TextObjects con coordenadas BoundingBox y propiedades de transformación

La propiedad ObjectModel contiene ImageObject, PathObject y TextObject. Cada objeto contiene información sobre su índice de página, cuadro delimitador, escala y traducción. Esta información puede modificarse. Para opciones de renderizado, puede personalizar cómo se muestran estos objetos. Cuando se trabaja con márgenes personalizados, es importante comprender el posicionamiento de los objetos.

<ImageObject>:

  • Height: Altura de la imagen
  • Width: Ancho de la imagen
  • ExportBytesAsJpg: Método para exportar la imagen como matriz de bytes JPG

<PathObject>:

  • FillColor: El color de relleno de la ruta
  • StrokeColor: El color del trazo de la ruta
  • Points: Colección de puntos que definen la ruta

<TextObject>:

  • Color: El color del texto
  • Contents: El contenido del texto real

Cada tipo de objeto proporciona métodos y propiedades adaptados a su tipo de contenido. Cuando necesite extraer texto e imágenes o modificar un contenido específico, estos objetos proporcionan un control granular. Esto resulta útil cuando se trabaja con formularios PDF en los que es necesario manipular campos de formulario mediante programación.

¿Cómo puedo recuperar información sobre glifos y cuadros delimitadores?

A la hora de especificar glifos exactos con fuentes personalizadas, es esencial recuperar información sobre el cuadro delimitador y el glifo. IronPDF proporciona esta información para un posicionamiento de píxeles perfecto al dibujar texto y mapas de bits en PDF existentes.

Acceda al ObjectModel desde el objeto PdfPage. Luego acceda a la colección TextObjects. Llame al método GetGlyphInfo para recuperar información del glifo y del cuadro delimitador.

: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();
$vbLabelText   $csharpLabel
Depurador que muestra las propiedades del objeto glifo PDF, incluidas las coordenadas, los límites y los detalles del contenido del texto

La información sobre glifos incluye datos de posicionamiento, métricas de fuentes y detalles específicos de los caracteres para la manipulación avanzada de PDF. Esto permite la creación de aplicaciones de procesamiento de PDF que manejan requisitos complejos de tipografía y maquetación. Al trabajar con fuentes personalizadas, este acceso a nivel de glifo garantiza una representación precisa en todos los sistemas.


¿Cómo puedo traducir objetos PDF?

Ajuste el diseño del PDF cambiando la posición de elementos como texto o imágenes. Mueva objetos cambiando su propiedad Translate. Esta funcionalidad forma parte de las capacidades de transformación de PDF de IronPDF.

El siguiente ejemplo muestra HTML utilizando CSS Flexbox para centrar el texto. Accede al primer TextObject y lo traduce asignando un nuevo PointF a la propiedad Translate. Esto desplaza el texto 200 puntos a la derecha y 150 puntos hacia arriba. Si desea ver más ejemplos, visite la página Ejemplo de traducción de objetos PDF.

¿Qué código utilizo para traducir 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");
$vbLabelText   $csharpLabel

¿Qué aspecto tiene el resultado de la traducción?

El resultado muestra "Centrado" desplazado 200 puntos a la derecha y 150 puntos hacia arriba desde su posición original.

Comparación del antes y el después de la traducción de un PDF que muestra la posición y el formato del texto

Las operaciones de traducción mantienen las propiedades originales del objeto, como la fuente, el tamaño y el color, y solo cambian la posición. Es ideal para realizar ajustes de maquetación sin afectar al aspecto visual. Esta función funciona con encabezados y pies de página al reposicionar contenido generado dinámicamente.


¿Cómo puedo escalar objetos PDF?

Cambie el tamaño de los objetos PDF utilizando la propiedad Scale. Esta propiedad actúa como un multiplicador. Los valores superiores a 1 aumentan el tamaño, mientras que los valores entre 0 y 1 lo disminuyen. El escalado es esencial para los diseños dinámicos y para ajustar el contenido a las dimensiones de la página. Consulte la guía de objetos PDF para ver más ejemplos.

El ejemplo renderiza HTML que contiene una imagen. Accede al primer ImageObject y lo escala al 70% asignando a Scale un nuevo PointF con 0,7 para ambos ejes.

¿Cuál es el código para escalar objetos 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");
$vbLabelText   $csharpLabel

Aplique diferentes factores de escala a los ejes X e Y de forma independiente para obtener una escala no uniforme. Esto es útil para ajustar el contenido a dimensiones específicas. Al trabajar con tamaños de papel personalizados, el escalado ayuda a garantizar que el contenido se ajuste a los límites de la página.

¿Cómo es el escalado en la práctica?

La salida muestra la imagen escalada al 70% de su tamaño original.

Demostración de escalado de PDF: El logotipo de IRON escalado de tamaño grande (izquierda) a tamaño pequeño (derecha) con una flecha que muestra la transformación

¿Cómo puedo eliminar objetos PDF?

Elimine objetos accediendo a la colección DOM PDF como ImageObjects o TextObjects. Llama a RemoveAt en la colección, pasando el índice del objeto a eliminar. Esto resulta útil para redactar contenidos o simplificar documentos. Más información en el ejemplo de eliminación de objetos PDF.

El código carga BeforeScale.pdf y elimina la primera imagen de la primera página.

¿Qué código debo utilizar para eliminar 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");
$vbLabelText   $csharpLabel

¿Qué ocurre cuando elimino varios objetos?

Los índices de los objetos restantes se desplazan tras la eliminación. Al eliminar varios objetos, elimínelos en orden inverso para mantener los índices correctos. Esta técnica es útil para redactar texto de documentos confidenciales.

¿Cómo combino varias operaciones DOM?

El acceso DOM de IronPDF permite sofisticados flujos de trabajo de procesamiento de documentos. Combinar operaciones para transformaciones complejas:

¿Cuándo debo utilizar operaciones 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");
$vbLabelText   $csharpLabel

¿Cuáles son los casos de uso comunes de las operaciones combinadas?

Las operaciones DOM combinadas funcionan bien para:

  1. Procesamiento de documentos por lotes: Procesar documentos para estandarizar el formato o eliminar contenido sensible
  2. Generación de informes dinámicos: Modifica plantillas PDF con datos en tiempo real mientras controlas el diseño
  3. Migración de contenido: Extraer y reorganizar el contenido de los PDF en nuevos diseños
  4. Mejoras de accesibilidad: Mejore los documentos modificando el tamaño del texto, el contraste o el espaciado

Estas técnicas permiten potentes aplicaciones de procesamiento de PDF que gestionan modificaciones complejas. Para gestionar las propiedades de los documentos, consulte la guía de gestión de metadatos.

¿Cómo se compara el acceso DOM con otros métodos de manipulación de PDF?

Trabajar con PDF DOM ofrece ventajas sobre los enfoques tradicionales:

// 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");
$vbLabelText   $csharpLabel

Este control granular no es posible sólo con conversión de HTML a PDF, por lo que el acceso al DOM es esencial para el procesamiento sofisticado de PDF.

¿Listo para ver qué más puedes hacer? Consulta la página del tutorial aquí: Editar PDF

Preguntas Frecuentes

¿Para qué se utiliza la propiedad ObjectModel en la manipulación de PDF?

La propiedad ObjectModel de IronPDF proporciona acceso programático a objetos de texto, imágenes y rutas dentro de documentos PDF. Permite a los desarrolladores leer, modificar, traducir, escalar y eliminar elementos directamente desde el DOM de PDF, de forma similar a trabajar con elementos DOM de HTML.

¿Cómo se accede a los objetos DOM de PDF en C#?

Para acceder a los objetos DOM de PDF mediante IronPDF, importe primero el documento PDF de destino y, a continuación, acceda a su propiedad Pages. Desde allí, seleccione cualquier página y utilice la propiedad ObjectModel. Por ejemplo: var objs = IronPdf.ChromePdfRenderer.RenderUrlAsPdf("https://example.com").Pages.First().ObjectModel;

¿A qué tipos de objetos puedo acceder a través del PDF DOM?

El ObjectModel de IronPDF contiene tres tipos de objetos principales: ImageObject (con propiedades como Height, Width y ExportBytesAsJpg), PathObject (con FillColor, StrokeColor y Points) y TextObject (con propiedades Color y Contents). Cada uno de ellos proporciona métodos adaptados a su tipo de contenido específico.

¿Puedo modificar el contenido de texto de un documento PDF mediante programación?

Sí, IronPDF le permite modificar el contenido del texto a través de la propiedad Contents de TextObject. Puede acceder a los objetos de texto a través del ObjectModel, actualizar su contenido y guardar el documento PDF modificado con sólo unas pocas líneas de código.

¿Cómo puedo exportar imágenes de documentos PDF?

ImageObject de IronPDF proporciona el método ExportBytesAsJpg, que permite exportar imágenes como matrices de bytes JPG. Acceda a la imagen a través de la propiedad ObjectModel y utilice este método para extraer los datos de la imagen mediante programación.

¿Qué información hay disponible sobre la posición de cada objeto DOM?

Cada objeto en el ObjectModel de IronPDF contiene información sobre su índice de página, coordenadas del cuadro delimitador, escala y traslación. Estos datos de posicionamiento pueden leerse y modificarse para reposicionar o transformar elementos dentro del PDF.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 17,803,474 | Versión: 2026.3 recién lanzado
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package IronPdf
ejecutar una muestra Mira cómo tu HTML se convierte en PDF.