IRONSOFTWAREHOME

Cómo añadir marcadores y esquemas en PDF en Java

Curtis Chau
Curtis Chau
Updated: 16 de junio de 2026

La biblioteca Java de IronPDF te permite agregar marcadores y esquemas a documentos PDF de manera programada a través de la clase BookmarkManager, admitiendo estructuras de marcadores de una sola capa y multi-capa con puntos de navegación personalizables.

Inicio rápido: Agregar marcadores PDF en Java
  1. Instala la biblioteca Java de IronPDF y configura tu clave de licencia
  2. Carga tu PDF usando PdfDocument.fromFile()
  3. Obtén el BookmarkManager con pdf.getBookmark()
  4. Agrega marcadores usando addBookMarkAtEnd("Title", pageNumber)
  5. Guarda el PDF con pdf.saveAs()
  1. 1Install IronPDF with Maven Central Repository

    > mvn install

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

    //:path=/static-assets/ironpdf-java/content-code-examples/how-to/bookmarks/quickstart.java
    PdfDocument pdf = PdfDocument.fromFile(Path.of("document.pdf"));
    BookmarkManager bookmarks = pdf.getBookmark();
    bookmarks.addBookMarkAtEnd("Chapter 1", 0);
    pdf.saveAs(Path.of("bookmarked.pdf"));
    Java
  3. 3Despliegue para probar en su entorno real

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

Los marcadores PDF mejoran la usabilidad y navegación de tus documentos. Los esquemas proporcionan navegación estructurada dentro de los PDFs, permitiendo a los usuarios saltar directamente a secciones clave, como un índice. Esto resulta esencial al trabajar con documentos extensos, informes o PDFs de múltiples capítulos que requieren navegación organizada.

IronPDF simplifica la manipulación de PDF en aplicaciones Java. La API de marcadores te ofrece métodos sencillos para crear marcadores personalizados en archivos PDF. La biblioteca se integra con aplicaciones Java y admite diversas características de manipulación de PDF más allá de los marcadores, incluyendo fusión de PDFs, creación de formularios y adición de marcas de agua.

¿Qué necesito antes de empezar?

Antes de implementar marcadores PDF, confirma que IronPDF está configurado en tu proyecto Java. La biblioteca requiere Java 8 o superior y se integra a través de Maven o Gradle. Agrega la dependencia de IronPDF al archivo de construcción de tu proyecto. Para instrucciones detalladas de configuración, consulta la Guía de inicio.

Se requiere una clave de licencia válida para uso en desarrollo y producción. Configura la clave de licencia al inicio de tu aplicación antes de llamar a ningún método de IronPDF. Para información sobre las opciones de licencia, visita la guía de licencias.

Consejos: Todos los índices de página en IronPDF utilizan numeración basada en cero. La página 1 de tu documento es el índice 0, la página 2 es el índice 1, y así sucesivamente.

¿Cómo agrego esquemas y marcadores a un PDF?

Los siguientes ejemplos usan este PDF de muestra para demostrar la creación de esquemas y marcadores. El proceso involucra cargar un documento PDF existente y usar BookmarkManager de IronPDF para agregar puntos de navegación a lo largo del documento.

¿Cómo puedo añadir una sola capa de marcadores?

Una lista de marcadores plana es adecuada para documentos con una estructura clara y no jerárquica: informes, manuales de producto o presentaciones donde cada sección es independiente. Después de cargar el PDF desde una ruta de archivo usando PdfDocument.fromFile(), recupera el objeto BookmarkManager para comenzar a agregar marcadores.

Los métodos addBookMarkAtEnd y addBookMarkAtStart agregan entradas al final o al inicio de la colección de marcadores, respectivamente. Estos métodos te proporcionan flexibilidad para organizar marcadores que coincidan con la estructura de tu documento. Cada entrada toma un título para mostrar y un índice de página basado en cero.

//:path=/static-assets/ironpdf-java/content-code-examples/how-to/bookmarks/single-layer.java
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;

public class Main {
    public static void main(String[] args) throws IOException {
        // Set the license key for IronPDF
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        // Load the PDF file
        PdfDocument pdf = PdfDocument.fromFile(Path.of("NovelSample.pdf"));
        
        // Get BookmarkManager object to manage bookmarks
        BookmarkManager bookmarks = pdf.getBookmark();

        // Add bookmarks at the end of the bookmark collection
        bookmarks.addBookMarkAtEnd("Title Page", 0);
        bookmarks.addBookMarkAtEnd("Table of Contents", 1);
        bookmarks.addBookMarkAtEnd("Dedication Page", 2);
        bookmarks.addBookMarkAtEnd("First Page", 3);
        bookmarks.addBookMarkAtStart("Page 4", 6);

        // Save the modified PDF with bookmarks
        pdf.saveAs(Path.of("bookmarked.pdf"));
    }
}
Java

Con el visor de PDF anterior, verifica la tabla de contenido en la esquina superior izquierda de la mayoría de los navegadores para ver todos los marcadores añadidos. Esta estructura de marcadores plana proporciona navegación directa para documentos con necesidades organizativas simples.

¿Cómo crear varias capas de marcadores?

Los marcadores anidados son la elección correcta para documentación técnica, informes de investigación o cualquier documento de múltiples capítulos donde los lectores necesiten navegar no solo a capítulos, sino a secciones dentro de esos capítulos. Comienza con los mismos marcadores planos creados en la sección anterior, luego utiliza insertBookmark para agregar entradas en nuevas capas.

El método insertBookmark acepta cuatro parámetros: el nombre del marcador, el índice de la página de destino, el nombre del marcador principal y el nombre del marcador hermano anterior. Pasar un nombre de marcador padre crea una entrada hija anidada debajo de ella. Establecer el parámetro de hermano en null coloca la nueva entrada como el primer hijo de ese padre.

//:path=/static-assets/ironpdf-java/content-code-examples/how-to/bookmarks/multi-layer.java
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;

public class Main {
    public static void main(String[] args) throws IOException {
        // Set the license key
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
        
        // Load the PDF file
        PdfDocument pdf = PdfDocument.fromFile(Path.of("NovelSample.pdf"));

        // Get BookmarkManager object
        BookmarkManager bookmarks = pdf.getBookmark();
        
        // Add top-level bookmarks at the end
        bookmarks.addBookMarkAtEnd("Title Page", 0);
        bookmarks.addBookMarkAtEnd("Table of Contents", 1);
        bookmarks.addBookMarkAtEnd("Dedication", 2);

        // Insert second-layer bookmarks as children of existing entries
        bookmarks.insertBookmark("First Page", 3, "Table of Contents", null);
        bookmarks.insertBookmark("Second Page", 4, "Table of Contents", "First Page");
        bookmarks.insertBookmark("End of Sample", 7, "Title Page", null);
        bookmarks.insertBookmark("Fourth page", 6, "Table of Contents", "Second Page");

        // Save the modified PDF with nested bookmarks
        pdf.saveAs(Path.of("multiLayer.pdf"));
    }
}
Java

El PDF anterior muestra la estructura de árbol de los marcadores creados por insertBookmark. Expande el panel de esquema para verificar cómo cada entrada hija se anida debajo de su padre. Este enfoque en capas es adecuado para informes con capítulos, subcapítulos y apéndices.


¿Cómo recuperar los marcadores existentes de un PDF?

Leer datos de marcadores de un PDF es un requisito previo cuando se actualizan documentos sin reconstruir toda la estructura de navegación. IronPDF hace esto accesible a través de la misma interfaz BookmarkManager utilizada para agregar marcadores. Carga el PDF con PdfDocument.fromFile(), accede al BookmarkManager, luego llama a getBookmarks() para recuperar todos los marcadores de nivel superior.

Utiliza get(index) para acceder a un marcador específico por su posición en la lista. El método getText() devuelve la etiqueta de visualización del marcador, mientras que getPageIndex() devuelve el número de página basado en cero al que apunta. Los marcadores hijos no están incluidos en la lista plana devuelta por getBookmarks(); accede a ellos a través del método getChildren() de cada marcador padre.

//:path=/static-assets/ironpdf-java/content-code-examples/how-to/bookmarks/retrieve-bookmarks.java
import java.io.IOException;
import java.nio.file.Path;
import java.util.List;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.Bookmark;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;

public class Main {
    public static void main(String[] args) throws IOException {
        // Set the license key
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
        
        // Load the PDF file with bookmarks
        PdfDocument pdf = PdfDocument.fromFile(Path.of("bookmarked.pdf"));

        // Retrieve the bookmark manager
        BookmarkManager bookmarks = pdf.getBookmark();
        
        // Retrieve list of all bookmarks (includes child bookmarks)
        List<Bookmark> bookmarkList = bookmarks.getBookmarks();

        // Access a specific bookmark by zero-based index
        Bookmark bookmark = bookmarkList.get(2);
        
        // Print bookmark details
        System.out.println("Bookmark Title: " + bookmark.getText());
        System.out.println("Page Number: " + bookmark.getPageIndex());
        
        // Check if bookmark has children
        if (bookmark.getChildren() != null && !bookmark.getChildren().isEmpty()) {
            System.out.println("Number of child bookmarks: " + bookmark.getChildren().size());
        }
    }
}
Java
Por favor nota: El método getBookmarks() devuelve una lista plana de solo los marcadores de nivel superior. Para recorrer todo el árbol de marcadores, llama recursivamente a getChildren() en cada marcador que tenga entradas anidadas.

Este patrón de recuperación es útil cuando se audita la estructura de navegación de un PDF existente antes de su distribución, o cuando se construyen herramientas que necesitan validar que las secciones requeridas están correctamente marcadas antes de la publicación.


¿Cómo puedo insertar un marcador en un índice específico?

Insertar marcadores en una posición específica te permite actualizar PDFs existentes de manera incremental, agregando nuevas secciones sin reconstruir completamente el esquema desde cero. Esto es particularmente útil cuando los PDFs se generan o modifican en una canalización y se añade contenido nuevo aguas abajo.

Recupera la lista plana de marcadores usando getBookmarks(), selecciona el marcador de destino por su índice de lista, luego llama a addNextBookmark para insertar un nuevo hermano inmediatamente después de él. Usa addChildBookmark para colocar una nueva entrada un nivel más profundo, anidado bajo el marcador seleccionado. Ambos métodos aceptan una cadena de título y un índice de página basado en cero.

//:path=/static-assets/ironpdf-java/content-code-examples/how-to/bookmarks/insert-at-index.java
import java.io.IOException;
import java.nio.file.Path;
import java.util.List;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.Bookmark;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;

public class Main {
    public static void main(String[] args) throws IOException {
        // Set the license key
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
        
        // Load the PDF modified in the multi-layer example
        PdfDocument pdf = PdfDocument.fromFile(Path.of("multiLayer.pdf"));

        // Get the BookmarkManager
        BookmarkManager bookmarks = pdf.getBookmark();
        
        // Retrieve the flat bookmark list
        List<Bookmark> bookmarkList = bookmarks.getBookmarks();
        
        // Select a bookmark at a specific index
        Bookmark bookmark = bookmarkList.get(5);
        
        // Insert a new bookmark after the selected entry
        bookmark.addNextBookmark("Fourth Page", 6);
        
        // Add a child bookmark under the selected entry
        bookmark.addChildBookmark("Section 1", 7);

        // Save the updated PDF
        pdf.saveAs(Path.of("specificIndex.pdf"));
    }
}
Java
Por favor nota: Al fusionar dos PDFs cuyos marcadores comparten nombres idénticos, la lista resultante de marcadores puede comportarse de manera inesperada. Renombra los marcadores en conflicto antes de fusionar para mantener un esquema limpio.

El método addNextBookmark inserta la nueva entrada como hermano del marcador seleccionado, inmediatamente después de él en la lista. El método addChildBookmark coloca la nueva entrada un nivel más profundo, anidado bajo el marcador seleccionado. Ambos métodos aceptan una cadena de título y un índice de página basado en cero.

¿Cuáles son los siguientes pasos para los marcadores PDF en Java?

Los marcadores PDF brindan a los usuarios un camino de navegación directo a través de documentos complejos sin desplazarse. El BookmarkManager de IronPDF maneja todo el rango de operaciones de marcadores: agregar listas de entradas planas, construir esquemas profundos de varios niveles, recuperar entradas existentes e insertar en posiciones específicas.

Para continuar trabajando con la estructura del documento y las características de navegación, explora estos recursos relacionados:

Comience su prueba gratuita para añadir marcadores, esquemas y otras características de navegación a su flujo de trabajo Java PDF. Para comprar una licencia para uso en producción, ver opciones de licencia.

Preguntas Frecuentes

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

Cargue su PDF usando PdfDocument.fromFile(), luego llame a pdf.getBookmark() para obtener el BookmarkManager. Use addBookMarkAtEnd("Title", pageIndex) para agregar cada marcador por nombre de visualización y número de página basado en cero, luego guarde con pdf.saveAs().

¿Cuáles son los requisitos para agregar marcadores a un PDF en Java?

Necesita Java 8 o superior, la biblioteca de IronPDF agregada como dependencia de Maven o Gradle, y una clave de licencia válida configurada con License.setLicenseKey() antes de cualquier llamada a IronPDF. No se requieren herramientas o marcos adicionales.

¿Puedo crear jerarquías de marcadores de varios niveles en los PDF?

Sí. Agregue primero marcadores de nivel superior con addBookMarkAtEnd, luego llame a insertBookmark(name, pageIndex, parentName, siblingName) para anidar entradas secundarias bajo un marcador principal. Pase null como el nombre del hermano para colocar la nueva entrada como el primer hijo.

¿Cuál es la diferencia entre addBookMarkAtEnd e insertBookmark?

addBookMarkAtEnd agrega una nueva entrada de nivel superior al final de la lista de marcadores. insertBookmark coloca un marcador en una posición específica dentro de la jerarquía especificando un nombre de marcador principal y un hermano precedente opcional, permitiendo esquemas anidados.

¿Cómo leo marcadores existentes de un PDF en Java?

Llame a pdf.getBookmark().getBookmarks() para recuperar una lista plana de marcadores de nivel superior. Acceda a entradas individuales por índice usando list.get(index). Use bookmark.getText() para el título y bookmark.getPageIndex() para el número de página basado en cero. Los marcadores secundarios son accesibles a través de bookmark.getChildren().

¿Cómo inserto un marcador después de un marcador existente específico?

Recupere la lista de marcadores con getBookmarks(), seleccione la entrada de destino por índice, luego llame a bookmark.addNextBookmark("Title", pageIndex) para insertar un hermano inmediatamente después de él, o bookmark.addChildBookmark("Title", pageIndex) para anidar una nueva entrada debajo de él.

What features does IronPDF provide beyond PDF bookmarking?

IronPDF supports a variety of PDF manipulation features such as merging PDFs, creating forms, adding watermarks, and many more functionalities that integrate with Java applications.

How do you insert a bookmark at a specific index in a PDF with IronPDF?

Use `addNextBookmark` to insert a bookmark immediately after a specific entry and `addChildBookmark` to place a new entry one level deeper under a selected bookmark.

Can IronPDF handle PDF generation and modification pipelines?

Yes, IronPDF allows for incremental updates to PDFs, making it suitable for pipelines where new content can be appended with appropriate bookmarks without rebuilding the entire document structure.

Where can I find more information about using IronPDF for Java?

You can explore additional resources and tutorials on the IronPDF website, which provide detailed examples for splitting PDFs, printing, adding annotations, and using the full range of IronPDF Java API features.

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?

Versión:2026.6recién publicada

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 Java Maven para PDF
Instalar con Maven

Versión: 2026.6

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2026.6.1</version>
</dependency>
https://central.sonatype.com/artifact/com.ironsoftware/ironpdf/2026.6.1
or
JAR PDF for Java
Descargar JAR

Versión: 2026.6

Instalar manualmente en tu proyecto

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 Java Maven para PDF
Instalar con Maven

Versión: 2026.6

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2026.6.1</version>
</dependency>
https://central.sonatype.com/artifact/com.ironsoftware/ironpdf/2026.6.1
or
JAR PDF for Java
Descargar JAR

Versión: 2026.6

Instalar manualmente en tu proyecto