IRONSOFTWAREHOME

Cómo añadir marcadores y esquemas en PDF en C# usando IronPDF

Curtis Chau
Curtis Chau
Updated: 20 de mayo de 2026

IronPDF te permite añadir marcadores (esquemas) a documentos PDF en C#, creando ayudas de navegación similares a una Tabla de Contenidos. Añade marcadores de una o varias capas para mejorar la usabilidad del documento y ayudar a los usuarios a saltar a secciones clave rápidamente. Esta función funciona a la perfección en entornos Windows, Linux y macOS.

Inicio rápido: Añadiendo marcadores a tu PDF en C#

Comienza rápidamente con IronPDF añadiendo marcadores a tus documentos PDF. Esta guía demuestra cómo cargar un PDF existente, añadir marcadores para la navegación y guardar el documento actualizado. Perfecto para desarrolladores que buscan mejorar la funcionalidad de PDF en sus proyectos de C#.

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2Copie y ejecute este fragmento de código.

    var pdf = new IronPdf.PdfDocument("example.pdf");
    pdf.Bookmarks.AddBookMarkAtEnd("Chapter 1", 1);
    pdf.SaveAs("bookmarked.pdf");
    C#
  3. 3Despliegue para probar en su entorno real

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

¿Cómo trabajo con marcadores PDF en C#?

En Adobe Acrobat Reader, los esquemas (también conocidos como marcadores) se muestran en la barra lateral izquierda, proporcionando una forma conveniente de saltar a secciones clave del documento. Los marcadores funcionan como una tabla de contenidos interactiva, permitiendo a los lectores navegar documentos complejos de manera eficiente.

Con IronPDF, puedes importar documentos PDF y realizar varias operaciones en esquemas existentes, tales como añadir, reordenar, editar propiedades y eliminar marcadores. Esto te da control total sobre la organización y estructura de tus archivos PDF, similar a cómo puedes fusionar o dividir PDFs para la gestión de documentos.

Consejos: Todos los índices de página siguen la indexación basada en cero.

¿Cómo añado marcadores de capa única?

Añadir un marcador en IronPDF es sencillo. Usa el método AddBookmarkAtEnd, especificando el nombre del marcador y el índice de la página correspondiente. Esta funcionalidad se integra bien con otras operaciones en PDF como añadir encabezados y pies de página o establecer márgenes personalizados para crear documentos profesionales. A continuación se muestra un ejemplo:

using IronPdf;

// Create a new PDF or edit an existing document.
PdfDocument pdf = PdfDocument.FromFile("existing.pdf");

// Add a bookmark
pdf.Bookmarks.AddBookMarkAtEnd("NameOfBookmark", 0);

// Add a sub-bookmark
pdf.Bookmarks.AddBookMarkAtEnd("NameOfSubBookmark", 1);

pdf.SaveAs("singleLayerBookmarks.pdf");

El método AddBookMarkAtEnd añade marcadores al final de la lista de marcadores existente. Para más control sobre la ubicación del marcador, usa AddBookMarkAtStart para insertar marcadores al principio de la lista. Cada marcador referencia un índice de página específico, permitiendo una navegación precisa dentro del documento.

Documento de marcadores de capa única

¿Cómo creo jerarquías de marcadores en múltiples capas?

IronPDF te permite añadir marcadores en una estructura de árbol, lo cual es especialmente útil para mantener la navegabilidad en documentos PDF grandes. Esta función es valiosa al tratar con colecciones extensas de exámenes, informes de ventas o registros de recibos de varias fechas y ubicaciones en un solo documento PDF. Al igual que podrías crear formularios PDF para la recopilación de datos, los marcadores estructurados ayudan a organizar información compleja de manera jerárquica.

El método AddBookMarkAtEnd devuelve un objeto IPdfBookMark, permitiendo añadir marcadores secundarios. Por ejemplo, usa Children.AddBookMarkAtStart("Date1", 0) o Children.AddBookMarkAtEnd("Date1", 0) para añadir marcadores secundarios al marcador 'Examen'. Esta estructura anidada crea una organización jerárquica que refleja el flujo lógico de tu documento. El siguiente código demuestra este concepto:

using IronPdf;

// Load existing PDF document
PdfDocument pdf = PdfDocument.FromFile("examinationPaper.pdf");

// Assign IPdfBookMark object to a variable
var mainBookmark = pdf.Bookmarks.AddBookMarkAtEnd("Examination", 0);

// Add bookmark for days
var date1Bookmark = mainBookmark.Children.AddBookMarkAtStart("Date1", 1);

// Add bookmark for type of test
var paperBookmark = date1Bookmark.Children.AddBookMarkAtStart("Paper", 1);
paperBookmark.Children.AddBookMarkAtEnd("PersonA", 3);
paperBookmark.Children.AddBookMarkAtEnd("PersonB", 4);

// Add bookmark for days
var date2Bookmark = mainBookmark.Children.AddBookMarkAtEnd("Date2", 5);

// Add bookmark for type of test
var computerBookmark = date2Bookmark.Children.AddBookMarkAtStart("Computer", 5);
computerBookmark.Children.AddBookMarkAtEnd("PersonC", 6);
computerBookmark.Children.AddBookMarkAtEnd("PersonD", 7);

pdf.SaveAs("multiLayerBookmarks.pdf");

Este enfoque jerárquico es particularmente valioso al trabajar con documentos complejos que requieren una organización detallada. La estructura anidada permite a los usuarios expandir y contraer secciones de marcadores, haciendo la navegación intuitiva incluso en documentos con cientos de páginas.

Documento de marcadores de múltiples capas

¿Cómo puedo generar automáticamente marcadores a partir de encabezados HTML?

Al renderizar HTML a PDF, IronPDF puede construir automáticamente un esquema de marcadores jerárquico a partir de la estructura de encabezados del documento (h1-h6) o cualquier selector CSS personalizado. Esto elimina la necesidad de llamar manualmente a AddBookMarkAtEnd para cada sección.

Habilita la función con la propiedad AutoBookmarksFromHeadings en RenderingOptions antes de llamar a RenderHtmlAsPdf o RenderUrlAsPdf:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Master switch: auto-generate bookmarks from HTML headings (h1-h6) during rendering
renderer.RenderingOptions.AutoBookmarksFromHeadings = true;

var html = @"
<h1>Annual Report</h1>
<h2>Executive Summary</h2>
<p>Overview of the year.</p>
<h2>Financial Results</h2>
<h3>Revenue</h3>
<h3>Expenses</h3>
<h2>Outlook</h2>
<p>Looking forward.</p>";

var pdf = renderer.RenderHtmlAsPdf(html);

// pdf.Bookmarks is already populated with a hierarchical outline matching the heading structure
pdf.SaveAs("auto-bookmarked.pdf");

Las siguientes propiedades controlan qué elementos se marcan:

  • AutoBookmarksFromHeadings (bool, por defecto false): Activa la función. Cuando se establece en true, IronPDF construye automáticamente un esquema de marcadores a partir de tus encabezados HTML.
  • AutoBookmarkMinHeadingLevel (int, por defecto 1): El nivel de encabezado más alto para comenzar. Establecer en 1 para incluir h1 (la parte superior del documento).
  • AutoBookmarkMaxHeadingLevel (int, por defecto 6): El nivel de encabezado más profundo a incluir. Establecer en 3 para marcar solo h1, h2 y h3 - ignorando h4 hasta h6.
  • AutoBookmarkCssSelectors (string[], por defecto null): Utiliza selectores CSS personalizados en lugar de etiquetas de encabezado. Por ejemplo: ".chapter-title" o "[data-bookmark]".

Personalización de niveles de encabezado y selectores CSS

Para restringir los marcadores solo a encabezados de nivel superior:

renderer.RenderingOptions.AutoBookmarksFromHeadings = true;
renderer.RenderingOptions.AutoBookmarkMaxHeadingLevel = 3;

Para marcar elementos personalizados en lugar de encabezados, proporciona selectores CSS:

renderer.RenderingOptions.AutoBookmarksFromHeadings = true;
renderer.RenderingOptions.AutoBookmarkCssSelectors = new[]
{
    "h1",
    ".chapter-title",
    "[data-bookmark]"
};

¿Cómo consulto la ubicación renderizada de elementos HTML?

Después de renderizar, IronPDF puede informar exactamente en qué página y coordenadas terminó un elemento HTML dado. Esto reemplaza la antigua solución alternativa de renderizar primero, extraer texto y buscar páginas manualmente.

Configura ElementQuerySelectors en RenderingOptions antes de renderizar, luego llama a GetElementLocations en el PdfDocument resultante:

using IronPdf;
using System;

var renderer = new ChromePdfRenderer();

// Configure which elements should be queryable after rendering
renderer.RenderingOptions.ElementQuerySelectors = new[] { "h1", ".kpi-card" };

var html = @"
<h1>Q4 Dashboard</h1>
<div class='kpi-card'>Revenue: $1.2M</div>
<div class='kpi-card'>Growth: 18%</div>
<h1>Q3 Comparison</h1>
<div class='kpi-card'>Previous: $1.0M</div>";

var pdf = renderer.RenderHtmlAsPdf(html);

// Retrieve the rendered page location of each matched element
foreach (var location in pdf.GetElementLocations())
{
    Console.WriteLine($"'{location.Text}' on page {location.PageIndex + 1} " +
                      $"at ({location.Rectangle.X}, {location.Rectangle.Y})");
}

pdf.SaveAs("dashboard.pdf");

GetElementLocations devuelve un List<RenderedElementLocation> que contiene una entrada por cada elemento coincidente:

PropiedadTipoLo que te dice
TextstringEl texto dentro del elemento.
PageIndexintEn qué página terminó el elemento (comienza en 0).
RectangleIronSoftware.Drawing.RectangleLa posición del elemento en la página, en puntos PDF (1/72 de pulgada). El origen está en la parte inferior izquierda.
ElementIndexintEl orden del elemento en el HTML original (comienza en 0).
Consejos: Los resultados se almacenan en caché en la primera llamada. Si modificas las anotaciones del documento después de renderizar y necesitas coordenadas frescas, llama a ResetElementLocationCache para forzar un nuevo escaneo en la siguiente llamada GetElementLocations.

Combinando marcadores automáticos con el seguimiento de la ubicación de elementos

Los marcadores automáticos y las consultas de ubicación de elementos se pueden combinar en un solo renderizado. Por ejemplo, generando un esquema a partir de encabezados h1/h2 mientras se rastrea la ubicación en la página de los elementos .invoice-total:

using IronPdf;
using System;

var renderer = new ChromePdfRenderer();

// Auto-generate bookmarks from top-level headings only
renderer.RenderingOptions.AutoBookmarksFromHeadings = true;
renderer.RenderingOptions.AutoBookmarkMaxHeadingLevel = 2;

// Also track the page location of invoice totals after rendering
renderer.RenderingOptions.ElementQuerySelectors = new[] { ".invoice-total" };

var html = @"
<h1>Invoice #2026-001</h1>
<h2>Line Items</h2>
<p>Services rendered for Q1.</p>
<p class='invoice-total'>Subtotal: $4,500.00</p>
<h1>Invoice #2026-002</h1>
<h2>Line Items</h2>
<p>Consulting hours for Q2.</p>
<p class='invoice-total'>Subtotal: $7,200.00</p>";

var pdf = renderer.RenderHtmlAsPdf(html);

// Bookmarks are populated automatically; locations can be queried after rendering
foreach (var location in pdf.GetElementLocations())
{
    Console.WriteLine($"{location.Text} appears on page {location.PageIndex + 1}");
}

pdf.SaveAs("invoices.pdf");

¿Cómo puedo recuperar y navegar por marcadores existentes?

IronPDF facilita la recuperación y visualización de marcadores en un documento PDF. Navegar a través del árbol de marcadores es sencillo y proporciona acceso sin complicaciones a diferentes secciones. Esta funcionalidad es esencial al trabajar con PDFs existentes que necesitan edición o al implementar funciones como buscar y reemplazar texto dentro de secciones marcadas. Considera el ejemplo de documento con marcadores de múltiples capas arriba.

El marcador "Examen" tiene una propiedad Children que apunta a los marcadores "Fecha1" y "Fecha2". El marcador "Fecha1" tiene una propiedad NextBookmark que apunta al marcador "Fecha2". Además, el marcador "Fecha1" tiene una propiedad Children que contiene el marcador "Documento". Esta estructura interconectada permite patrones de navegación sofisticados y organización de documentos.

Para recuperar todos los marcadores en el documento PDF abierto, usa el método GetAllBookmarks. Esto proporciona una lista completa de todos los marcadores, permitiendo analizar y utilizar la estructura de marcadores:

using IronPdf;

// Load existing PDF document
PdfDocument pdf = PdfDocument.FromFile("multiLayerBookmarks.pdf");

// Retrieve bookmarks list
var mainBookmark = pdf.Bookmarks.GetAllBookmarks();
Por favor nota: Fusionar dos documentos PDF con nombres de marcadores idénticos puede interrumpir la lista de marcadores.
Advertencia: Solo se admiten marcadores creados a partir de índices de página. Los marcadores de otros elementos PDF tendrán su valor de índice de página establecido en -1.

Aprende cómo crear una Tabla de Contenidos al generar PDF desde HTML en el siguiente artículo: "Crear una Tabla de Contenidos con IronPDF."

¿Listo para ver qué más puedes hacer? Consulta nuestra página de tutoriales aquí: Organizar PDFs

Preguntas Frecuentes

¿Cómo añado marcadores a un documento PDF en C#?

IronPDF facilita la adición de marcadores a documentos PDF en C#. Puede utilizar el método AddBookmarkAtEnd para añadir marcadores de una sola capa especificando el nombre del marcador y el índice de la página. Por ejemplo: pdf.Bookmarks.AddBookMarkAtEnd("Capítulo 1", 1). Esto crea ayudas de navegación similares a un índice que ayudan a los usuarios a saltar rápidamente a las secciones clave.

¿Cuál es la diferencia entre los métodos AddBookmarkAtEnd y AddBookmarkAtStart?

IronPDF proporciona dos métodos para la colocación de marcadores. El método AddBookMarkAtEnd añade marcadores al final de la lista de marcadores existente, mientras que AddBookMarkAtStart inserta marcadores al principio de la lista. Ambos métodos hacen referencia a índices de página específicos para una navegación precisa dentro del documento.

¿Puedo crear estructuras jerárquicas de marcadores con varios niveles?

Sí, IronPDF permite crear jerarquías de marcadores multicapa en una estructura de árbol. Esto resulta especialmente útil para organizar documentos complejos con secciones anidadas, de forma similar a como se estructuraría un índice detallado con capítulos y subcapítulos.

¿Es compatible la funcionalidad de los marcadores en distintos sistemas operativos?

La función de marcadores de IronPDF funciona perfectamente en entornos Windows, Linux y macOS. Puede añadir, editar y gestionar marcadores de PDF independientemente de su sistema operativo, lo que garantiza una funcionalidad coherente en diferentes plataformas.

¿Qué operaciones puedo realizar en los marcadores PDF existentes?

Con IronPDF, puede realizar varias operaciones en esquemas PDF existentes, como añadir nuevos marcadores, reordenarlos, editar las propiedades de los marcadores y eliminar marcadores no deseados. Esto le proporciona un control total sobre la organización y estructura de sus archivos PDF.

¿Cómo se muestran los marcadores cuando los usuarios abren el PDF?

En Adobe Acrobat Reader y otros visores de PDF similares, los marcadores creados con IronPDF aparecen como contornos en la barra lateral izquierda. Funcionan como una tabla de contenidos interactiva, que permite a los lectores navegar por documentos complejos de manera eficiente haciendo clic para saltar a secciones específicas.

Does IronPDF support bookmark manipulation in existing PDF documents?

Yes, IronPDF allows for various operations on existing PDF outlines such as adding, reordering, editing properties, and deleting bookmarks, giving you full control over the PDF document's structure.

What environments does IronPDF support for adding bookmarks to PDFs?

IronPDF supports adding bookmarks to PDFs on Windows, Linux, and macOS environments, providing cross-platform compatibility for developers.

Can IronPDF track the rendered locations of HTML elements in a PDF?

IronPDF can report the rendered page and coordinates of specific HTML elements in a PDF using the `GetElementLocations` method, helping developers precisely locate elements within the PDF document.

What are the key steps to get started with adding bookmarks in IronPDF?

The key steps to add bookmarks in IronPDF include downloading IronPDF from NuGet, loading or rendering a new PDF document, adding single or multi-layer bookmarks, and saving the updated document.

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 estructurados y visualmente atractivos.

...
Leer más

¿Listo para empezar?

Nuget Downloads 21,105,021Versión:2026.9recién publicada

Obtén tu GRATIS

Clave de prueba de 30 días instantáneamente.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuenta
bullet_testPrueba en producción
sin marcas de agua
bullet_calendarProducto completamente
funcional por 30 días
bullet_supportSoporte técnico 24/5
durante la prueba
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta
Biblioteca C# NuGet para PDF
Instalar con NuGet

Versión: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. En el Explorador de Soluciones, haga clic derecho en Referencias, Administrar Paquetes NuGet
  2. Seleccione Examinar y busque "IronPDF"
  3. Seleccione el paquete e instale
C# PDF DLL
Descargar DLL

Versión: 2026.9

o descargue el Instalador de Windows aquí.

  1. Descargue y descomprima IronPDF en una ubicación como ~/Libs dentro del directorio de su solución
  2. En el Explorador de Soluciones de Visual Studio, haga clic derecho en Referencias. Seleccione Examinar, "IronPDF.dll"

Licencias desde $999

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

OR
bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta
Biblioteca C# NuGet para PDF
Instalar con NuGet

Versión: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. En el Explorador de Soluciones, haga clic derecho en Referencias, Administrar Paquetes NuGet
  2. Seleccione Examinar y busque "IronPDF"
  3. Seleccione el paquete e instale
C# PDF DLL
Descargar DLL

Versión: 2026.9

o descargue el Instalador de Windows aquí.

  1. Descargue y descomprima IronPDF en una ubicación como ~/Libs dentro del directorio de su solución
  2. En el Explorador de Soluciones de Visual Studio, haga clic derecho en Referencias. Seleccione Examinar, "IronPDF.dll"

Licencias desde $999