Cómo agregar marcadores y un esquema de PDF en Java
Incluir marcadores de PDF en tu proyecto Java puede mejorar significativamente la usabilidad y navegación de tus PDFs. Los esquemas en los PDF proporcionan un método fácil de navegación dentro del propio PDF, de modo que puedes desplazarte fácilmente a las páginas clave del documento de manera similar a como lo harías con una tabla de contenido.
IronPDF es una poderosa herramienta para PDF que facilita trabajar con archivos PDF. Su herramienta de marcadores le ofrece un método conciso y fácil de usar para crear marcadores personalizados para sus archivos PDF.
Cómo añadir marcadores y esquemas en PDF
- Instalar la biblioteca de Java para agregar marcadores a PDFs
- Utilice el DocumentoPdf clase para cargar un archivo PDF existente en Java
- Cree y personalice los marcadores con el BookmarkManager clase
- Utilice
addBookMarkAtEnd
para agregar marcadores a páginas específicas del PDF - Guardar el documento PDF que contiene el nuevo esquema y marcadores.
Comience a usar IronPDF en su proyecto hoy con una prueba gratuita.
Antes de comenzar
También necesitarás asegurarte de que tu clave de licencia esté configurada correctamente, ya que IronPDF debe estar licenciado para el desarrollo.
Agregar ejemplo de esquema y marcadores
Para el ejemplo de hoy, usaré estomuestra PDFaplicar el esquema y los marcadores.
Añadir una sola capa de marcadores
Después de cargar este PDF desde la ruta de archivo especificada usando el DocumentoPdfclase, podemos comenzar a agregar marcadores al documento recuperando el BookmarkManager objeto. Puede agregar el marcador al inicio o al final de la colección de marcadores utilizando los métodos addBookMarkAtEnd
y addBookMarkAtStart
.
Consejos
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;
public class Main {
public static void main(String[] args) throws IOException {
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
PdfDocument pdf = PdfDocument.fromFile(Path.of("NovelSample.pdf"));
// Get BookmarkManager object
BookmarkManager bookmarks = pdf.getBookmark();
// Add bookmarks
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);
pdf.saveAs(Path.of("bookmarked.pdf"));
}
}
Con el visor de PDF de arriba, puedes consultar la tabla de contenidos, que se encuentra en la esquina superior izquierda de la mayoría de los navegadores, para ver todos los marcadores que hemos añadido.
Añadir varias capas de marcadores
En este ejemplo, comenzaremos añadiendo marcadores, tal como lo hicimos al crear una sola capa de marcadores. A continuación, usaremos el insertBookmarkmétodo para agregar un nuevo marcador en una nueva capa y darle un nombre utilizando el primer parámetro del método. El segundo parámetro especifica la página a la que enlaza el nuevo marcador. Para crear una nueva capa, hacemos que el nuevo marcador sea un "hijo" de un marcador existente, lo cual se realiza utilizando el tercer parámetro del método.
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;
public class Main {
public static void main(String[] args) throws IOException {
PdfDocument pdf = PdfDocument.fromFile(Path.of("NovelSample.pdf"));
// Get BookmarkManager object
BookmarkManager bookmarks = pdf.getBookmark();
// Add bookmarks
bookmarks.addBookMarkAtEnd("Title Page", 0);
bookmarks.addBookMarkAtEnd("Table of Contents", 1);
bookmarks.addBookMarkAtEnd("Dedication", 2);
// Insert second layer bookmarks
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");
pdf.saveAs(Path.of("multiLayer.pdf"));
}
}
Aquí puedes ver el PDF con nuestra nueva estructura de árbol de marcadores. Consulta el esquema por ti mismo para ver cómo la función insertBookmark
ha agregado una nueva capa de marcadores.
Recuperando marcadores
La herramienta de marcadores de IronPDF no solo añade nuevos marcadores, sino que también recupera y visualiza los existentes. Para navegar a través de los marcadores, primero cargue el PDF usando el PdfDocument.fromFile método. Luego, accede al objeto BookmarkManager y utiliza el obtenerMarcadoresmétodo para recuperar todos los marcadores, incluidos los marcadores secundarios. Finalmente, usa el método get
para recuperar un marcador por su índice en la lista.
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 {
PdfDocument pdf = PdfDocument.fromFile(Path.of("bookmarked.pdf"));
BookmarkManager bookmarks = pdf.getBookmark();
// Retrieve bookmarks list
List<Bookmark> bookmarkList = bookmarks.getBookmarks();
Bookmark bookmark = bookmarkList.get(2);
}
}
Insertar marcador en un índice específico
Con los marcadores recuperados, tiene la opción de agregar nuevos marcadores en índices específicos dentro del documento. Para hacer esto, seleccione el marcador objetivo y utilice el addNextBookmarkmétodo para agregar un nuevo marcador después de él. Por ejemplo, tomamos el PDF de la sección 'Agregar múltiples capas de marcadores' y agregamos un marcador después del marcador 'Tercera página'. También puedes añadir un marcador hijo como una capa más profunda utilizando el método addChildBookmark
.
import java.io.IOException;
import java.nio.file.Path;
import java.util.List;
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 {
PdfDocument pdf = PdfDocument.fromFile(Path.of("multiLayer.pdf"));
BookmarkManager bookmarks = pdf.getBookmark();
List<Bookmark> bookmarkList = bookmarks.getBookmarks();
Bookmark bookmark = bookmarkList.get(5);
bookmark.addNextBookmark("Fourth Page", 6);
// Add another layer to 'Third page' bookmark
bookmark.AddChildBookmark("Section 1", 7);
pdf.saveAs(Path.of("specificIndex.pdf"));
}
}