Cómo añadir marcadores y esquemas en PDF

Incluir un esquema PDF, también conocido como marcador, en su proyecto C# puede mejorar enormemente la usabilidad y el diseño UX. Los esquemas de PDF funcionan como una herramienta de navegación que permite a los usuarios acceder fácilmente a las páginas clave del documento, de forma similar a un índice. Al incorporar esquemas de PDF, puede ofrecer una experiencia más intuitiva y fácil de usar para su documento.




Biblioteca NuGet C# para PDF

Instalar con NuGet

Install-Package IronPdf
o
Java PDF JAR

Descargar DLL

Descargar DLL

Instalar manualmente en su proyecto

Añadir esquemas y marcadores Ejemplo

En Adobe Acrobat Reader, esboza (también conocidos como marcadores) se muestran en la barra lateral izquierda, lo que permite saltar cómodamente a las secciones clave del documento.

Con IronPDF, puede importar esquemas existentes de documentos PDF y realizar varias operaciones con ellos, como añadir, reordenar, editar propiedades y eliminar marcadores. Esto le da un control total sobre la organización y estructura de sus archivos PDF.

Consejo
Todas las páginas indexadas siguen la indexación basada en cero.

Añadir una sola capa de marcadores

Añadir un marcador en IronPDF es un proceso sencillo. Puede utilizar el método AddBookmarkAtEnd, que requiere especificar el nombre del marcador y el índice de la página correspondiente.

:path=/static-assets/pdf/content-code-examples/how-to/bookmarks-single-layer-bookmark.cs
using IronPdf;

//  Casilla de verificación y Combobox HTML
string FormHtml = @"
<html>
    <body>
        <h2>Editable PDF Form</h2>
        Choose your favorite subject/s: <br>
        <input type='checkbox' name='mathematics' value='Mathematics'>
        Mathematics <br>
        <input type='checkbox' name='biology' value='Biology'>
        Biology <br>
        <input type='checkbox' name='history' value='History'>
        History <br> <br>
        Choose your dream job: <br>
        <select name='dreamjob'>
          <option value='Researcher'>Researcher</option>
          <option value='Pilot'>Pilot</option>
          <option value='Doctor'>Doctor</option>
        </select>
    </body>
</html>
";

//  Instanciar renderizador
ChromePdfRenderer Renderer = new ChromePdfRenderer();
Renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

Renderer.RenderHtmlAsPdf(FormHtml).SaveAs("checkboxAndComboboxForm.pdf");
Imports IronPdf

'  Casilla de verificación y Combobox HTML
Private FormHtml As String = "
<html>
    <body>
        <h2>Editable PDF Form</h2>
        Choose your favorite subject/s: <br>
        <input type='checkbox' name='mathematics' value='Mathematics'>
        Mathematics <br>
        <input type='checkbox' name='biology' value='Biology'>
        Biology <br>
        <input type='checkbox' name='history' value='History'>
        History <br> <br>
        Choose your dream job: <br>
        <select name='dreamjob'>
          <option value='Researcher'>Researcher</option>
          <option value='Pilot'>Pilot</option>
          <option value='Doctor'>Doctor</option>
        </select>
    </body>
</html>
"

'  Instanciar renderizador
Private Renderer As New ChromePdfRenderer()
Renderer.RenderingOptions.CreatePdfFormsFromHtml = True

Renderer.RenderHtmlAsPdf(FormHtml).SaveAs("checkboxAndComboboxForm.pdf")
VB   C#

Documento de marcadores de una sola capa

Añadir varias capas de marcadores

Con IronPDF, puede añadir marcadores en una estructura de árbol, lo que resulta especialmente útil para mantener la navegabilidad en documentos PDF de gran tamaño. Esta función resulta muy útil cuando se trabaja con colecciones extensas de documentos de examen, informes de ventas o registros de recibos de varias fechas y lugares en un único documento PDF.

El método AddBookMarkAtEnd devuelve un objeto IPdfBookMark, que permite añadir marcadores hijos. Por ejemplo, puede utilizar Children.AddBookMarkAtStart("Fecha1", 0) o Children.AddBookMarkAtEnd("Fecha1", 0) para añadir marcadores hijos al marcador "Examen". El siguiente código demuestra este concepto:

:path=/static-assets/pdf/content-code-examples/how-to/bookmarks-multi-layer-bookmark.cs
using IronPdf;

//  Cargar documento PDF existente
PdfDocument pdf = PdfDocument.FromFile("examinationPaper.pdf");

//  Asignar el objeto IPdfBookMark a una variable
var mainBookmark = pdf.Bookmarks.AddBookMarkAtEnd("Examination", 0);

//  Añadir marcador por días
var date1Bookmark = mainBookmark.Children.AddBookMarkAtStart("Date1", 1);

//  Añadir marcador para el tipo de prueba
var paperBookmark = date1Bookmark.Children.AddBookMarkAtStart("Paper", 1);
paperBookmark.Children.AddBookMarkAtEnd("PersonA", 3);
paperBookmark.Children.AddBookMarkAtEnd("PersonB", 4);

//  Añadir marcador por días
var date2Bookmark = mainBookmark.Children.AddBookMarkAtEnd("Date2", 5);

//  Añadir marcador para el tipo de prueba
var computerBookmark = date2Bookmark.Children.AddBookMarkAtStart("Computer", 5);
computerBookmark.Children.AddBookMarkAtEnd("PersonC", 6);
computerBookmark.Children.AddBookMarkAtEnd("PersonD", 7);

pdf.SaveAs("multiLayerBookmarks.pdf");
Imports IronPdf

'  Cargar documento PDF existente
Private pdf As PdfDocument = PdfDocument.FromFile("examinationPaper.pdf")

'  Asignar el objeto IPdfBookMark a una variable
Private mainBookmark = pdf.Bookmarks.AddBookMarkAtEnd("Examination", 0)

'  Añadir marcador por días
Private date1Bookmark = mainBookmark.Children.AddBookMarkAtStart("Date1", 1)

'  Añadir marcador para el tipo de prueba
Private paperBookmark = date1Bookmark.Children.AddBookMarkAtStart("Paper", 1)
paperBookmark.Children.AddBookMarkAtEnd("PersonA", 3)
paperBookmark.Children.AddBookMarkAtEnd("PersonB", 4)

'  Añadir marcador por días
Dim date2Bookmark = mainBookmark.Children.AddBookMarkAtEnd("Date2", 5)

'  Añadir marcador para el tipo de prueba
Dim computerBookmark = date2Bookmark.Children.AddBookMarkAtStart("Computer", 5)
computerBookmark.Children.AddBookMarkAtEnd("PersonC", 6)
computerBookmark.Children.AddBookMarkAtEnd("PersonD", 7)

pdf.SaveAs("multiLayerBookmarks.pdf")
VB   C#

Documento de marcadores multicapa

Recuperar lista de favoritos

Con IronPDF, puede recuperar y ver fácilmente los marcadores de un documento PDF. Navegar por el árbol de marcadores es sencillo y proporciona un acceso fluido a las distintas secciones. Consideremos la Documento de marcadores multicapa arriba.

El marcador "Examen" tendrá una propiedad Children que apunta a los marcadores "Fecha1" y "Fecha2". El marcador "Fecha1", a su vez, tiene una propiedad MarcadorSiguiente que apunta al marcador "Fecha2". Además, el marcador "Fecha1" tiene una propiedad Hijos que contiene el marcador "Papel".

Para recuperar todos los marcadores presentes en el documento PDF abierto, puede utilizar el método GetAllBookmarks. Esto le proporcionará una lista completa de todos los marcadores, lo que le permitirá analizar y utilizar más a fondo la estructura de marcadores.

:path=/static-assets/pdf/content-code-examples/how-to/bookmarks-retrieve-bookmark.cs
using IronPdf;

//  Cargar documento PDF existente
PdfDocument pdf = PdfDocument.FromFile("multiLayerBookmarks.pdf");

//  Recuperar la lista de favoritos
var mainBookmark = pdf.Bookmarks.GetAllBookmarks();
Imports IronPdf

'  Cargar documento PDF existente
Private pdf As PdfDocument = PdfDocument.FromFile("multiLayerBookmarks.pdf")

'  Recuperar la lista de favoritos
Private mainBookmark = pdf.Bookmarks.GetAllBookmarks()
VB   C#

Tenga en cuenta
Fusionar dos documentos PDF que tienen marcadores con nombres idénticos puede provocar una alteración en la lista de marcadores.

Antes de seguir
Sólo se admite el marcador creado a partir del índice de páginas. Los marcadores creados a partir de otras partes o elementos del documento PDF tendrán el valor de índice de página -1.

Chaknith Bin

Ingeniero de software

Chaknith es el Sherlock Holmes de los desarrolladores. La primera vez que se le ocurrió que podría tener futuro en la ingeniería de software fue cuando hacía retos de código por diversión. Su trabajo se centra en IronXL e IronBarcode, pero se enorgullece de ayudar a los clientes con todos los productos. Chaknith aprovecha sus conocimientos, adquiridos hablando directamente con los clientes, para ayudar a mejorar los propios productos. Sus comentarios anecdóticos van más allá de los tickets de Jira y apoyan el desarrollo de productos, la documentación y el marketing, para mejorar la experiencia general del cliente.Cuando no está en la oficina, se le puede encontrar aprendiendo sobre aprendizaje automático, codificación y senderismo.