Como adicionar marcadores e estrutura de tópicos em um PDF usando Java
A biblioteca Java do IronPDF permite adicionar marcadores e tópicos a documentos PDF programaticamente, usando a classe BookmarkManager, que suporta estruturas de marcadores de camada única e de múltiplas camadas com pontos de navegação personalizáveis.
Início Rápido: Adicionar Marcadores em PDF no Java
- Instale a biblioteca Java do IronPDF e defina sua chave de licença.
- Carregue seu PDF usando
PdfDocument.fromFile() - Obtenha o
BookmarkManagercompdf.getBookmark() - Adicione marcadores usando
addBookMarkAtEnd("Title", pageNumber) - Salve o PDF com
pdf.saveAs()
```java :title=Início Rápido PdfDocument pdf = PdfDocument.fromFile(Path.of("document.pdf")); BookmarkManager bookmarks = pdf.getBookmark(); bookmarks.addBookMarkAtEnd("Capítulo 1", 0); pdf.saveAs(Path.of("bookmarked.pdf"));
Os marcadores em PDF melhoram significativamente a usabilidade e a navegação dos seus documentos. Os tópicos oferecem navegação estruturada em PDFs, permitindo que os usuários acessem diretamente seções importantes, como o sumário. Essa funcionalidade se mostra essencial ao trabalhar com documentos extensos, relatórios ou PDFs com vários capítulos que exigem navegação organizada.
IronPDF simplifica a manipulação de PDFs em aplicações Java. Sua funcionalidade de marcadores oferece métodos simples para criar marcadores personalizados em arquivos PDF. A biblioteca integra-se perfeitamente com aplicações Java e suporta diversas funcionalidades de manipulação de PDFs além da marcação de páginas, incluindo [a fusão de PDFs](https://ironpdf.com/java/how-to/java-merge-pdf-tutorial/) , [a criação de formulários](https://ironpdf.com/java/how-to/create-forms/) e [a adição de marcas d'água](https://ironpdf.com/java/how-to/custom-watermark/) .
<div class="hsg-featured-snippet">
<h3>Como adicionar marcadores e estrutura de tópicos em um PDF</h3>
<ol>
<li><a href="https://ironpdf.com/java/#download-modal">Instale a biblioteca Java para adicionar marcadores a PDFs.</a></li>
<li>Utilize the **`PdfDocument`** class to load an existing PDF file in Java</li>
<li>Create and customize the bookmarks with the **`BookmarkManager`** class</li>
<li>Use `addBookMarkAtEnd` to add bookmarks to specific pages of the PDF</li>
<li>Salve o documento PDF contendo o novo esboço e os marcadores.</li>
</ol>
</div>
## O que preciso antes de começar?
Antes de implementar marcadores em PDF, certifique-se de que o IronPDF esteja configurado corretamente em seu projeto Java. A biblioteca requer Java 8 ou superior e pode ser facilmente integrada usando Maven ou Gradle. Você precisará adicionar a dependência do IronPDF ao arquivo de compilação do seu projeto. Para obter instruções detalhadas de configuração, consulte a [Visão geral de primeiros passos](https://ironpdf.com/java/docs/) .
Você também deve garantir que sua chave de licença esteja configurada corretamente, pois o IronPDF requer licenciamento para desenvolvimento. Para obter informações completas sobre opções de licenciamento e implementação, visite o [guia de licenciamento](https://ironpdf.com/java/get-started/license-keys/) . Insira a chave de licença no início da sua aplicação antes de usar qualquer funcionalidade do IronPDF .
## Como adiciono um sumário e marcadores a um PDF?
Neste exemplo, usarei este [PDF de amostra](/static-assets/ironpdf-java/howto/bookmarks/NovelSample.pdf) para aplicar o esquema e os marcadores. O processo envolve carregar um documento PDF existente e utilizar o recurso `BookmarkManager` do IronPDF para adicionar pontos de navegação ao longo do documento.
### Como posso adicionar uma única camada de favoritos?
Após carregar este PDF do caminho de arquivo especificado usando a classe [`PdfDocument`.fromFile](https://ironpdf.com/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html) , recupere o objeto [`BookmarkManager`](https://ironpdf.com/java/object-reference/api/com/ironsoftware/ironpdf/bookmark/BookmarkManager.html) para começar a adicionar marcadores. Você pode adicionar marcadores ao início ou ao fim da coleção de marcadores usando os métodos `addBookMarkAtEnd` e `addBookMarkAtStart`. Esses métodos oferecem flexibilidade na organização de seus marcadores de acordo com a estrutura do seu documento.
PontasLembre-se de que todos os índices de página seguem a indexação baseada em zero.
```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"));
}
}
Com o visualizador de PDF acima, verifique o sumário localizado no canto superior esquerdo da maioria dos navegadores para ver todos os marcadores adicionados. Essa estrutura de marcadores de camada única proporciona uma navegação direta para documentos com necessidades organizacionais simples.
Como faço para criar várias camadas de favoritos?
Neste exemplo, comece adicionando marcadores da mesma forma que você criaria uma única camada de marcadores. Em seguida, use o método insertBookmark para adicionar um novo marcador em uma nova camada. O primeiro parâmetro especifica o nome do marcador e o segundo parâmetro especifica a página para a qual o marcador direciona. Para criar uma nova camada, faça com que o novo marcador seja um "filho" de um marcador existente usando o terceiro parâmetro do método. Essa estrutura hierárquica é adequada para documentos com capítulos, seções e subseções.
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 bookmarks at the end
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");
// Save the modified PDF with multiple layer bookmarks
pdf.saveAs(Path.of("multiLayer.pdf"));
}
}
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 bookmarks at the end
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");
// Save the modified PDF with multiple layer bookmarks
pdf.saveAs(Path.of("multiLayer.pdf"));
}
}
Aqui você pode ver o PDF com nossa nova estrutura em árvore de favoritos. Confira o esboço para ver como o recurso insertBookmark adicionou uma nova camada de favoritos. Essa abordagem multicamadas é adequada para documentação técnica, artigos acadêmicos ou qualquer documento que exija uma estrutura de navegação detalhada.
Como faço para recuperar marcadores existentes em um PDF?
A ferramenta de favoritos do IronPDF não apenas adiciona novos favoritos, mas também recupera e visualiza os já existentes. Essa funcionalidade se mostra essencial ao modificar PDFs existentes ou analisar sua estrutura. Para navegar pelos marcadores, primeiro carregue o PDF usando o método PdfDocument.fromFile . Em seguida, acesse o objeto BookmarkManager e use o método getBookmarks para recuperar todos os favoritos, incluindo os favoritos filhos. Por fim, utilize o método get para recuperar um marcador pelo seu índice na lista. Essa funcionalidade permite a inspeção e manipulação programática de estruturas de navegação PDF existentes.
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
List<Bookmark> bookmarkList = bookmarks.getBookmarks();
// Retrieve a specific bookmark by its 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());
}
}
}
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
List<Bookmark> bookmarkList = bookmarks.getBookmarks();
// Retrieve a specific bookmark by its 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());
}
}
}
Como posso inserir um marcador em um índice específico?
Com os marcadores recuperados, você pode adicionar novos marcadores em índices específicos dentro do documento. Essa funcionalidade é útil ao atualizar PDFs existentes com novas seções ou reorganizar a estrutura do documento. Para fazer isso, selecione o marcador desejado e use o método addNextBookmark para adicionar um novo marcador após ele. Por exemplo, pegue o PDF da seção 'Adicionar várias camadas de marcadores' e adicione um marcador após o marcador 'Terceira página' . Você também pode adicionar um marcador filho como uma camada mais profunda usando o método addChildBookmark, permitindo um controle preciso sobre a hierarquia de navegação do seu documento.
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 we modified earlier
PdfDocument pdf = PdfDocument.fromFile(Path.of("multiLayer.pdf"));
// Get the BookmarkManager
BookmarkManager bookmarks = pdf.getBookmark();
// Retrieve the list of bookmarks
List<Bookmark> bookmarkList = bookmarks.getBookmarks();
// Retrieve a specific bookmark by its index
Bookmark bookmark = bookmarkList.get(5);
// Add a new bookmark after the specified bookmark
bookmark.addNextBookmark("Fourth Page", 6);
// Add another layer to 'Third page' bookmark
bookmark.addChildBookmark("Section 1", 7);
// Save the modified PDF
pdf.saveAs(Path.of("specificIndex.pdf"));
}
}
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 we modified earlier
PdfDocument pdf = PdfDocument.fromFile(Path.of("multiLayer.pdf"));
// Get the BookmarkManager
BookmarkManager bookmarks = pdf.getBookmark();
// Retrieve the list of bookmarks
List<Bookmark> bookmarkList = bookmarks.getBookmarks();
// Retrieve a specific bookmark by its index
Bookmark bookmark = bookmarkList.get(5);
// Add a new bookmark after the specified bookmark
bookmark.addNextBookmark("Fourth Page", 6);
// Add another layer to 'Third page' bookmark
bookmark.addChildBookmark("Section 1", 7);
// Save the modified PDF
pdf.saveAs(Path.of("specificIndex.pdf"));
}
}
Ao trabalhar com marcadores em fluxos de trabalho complexos com PDFs, considere explorar outros recursos do IronPDF, como dividir PDFs para criar documentos menores com suas próprias estruturas de marcadores ou imprimir PDFs com a navegação por marcadores intacta. Para exemplos mais avançados e demonstrações de código completas, consulte o exemplo de código de favoritos em nossa seção de exemplos.
Perguntas frequentes
Como adiciono marcadores a um documento PDF em Java?
Você pode adicionar marcadores a documentos PDF usando a classe BookmarkManager do IronPDF. Primeiro, carregue seu PDF usando PdfDocument.fromFile(), depois acesse o BookmarkManager com pdf.getBookmark() e adicione marcadores usando o método addBookMarkAtEnd(), especificando o título do marcador e o número da página.
Quais são os pré-requisitos para adicionar marcadores de PDF programaticamente?
Para adicionar marcadores em PDFs com o IronPDF, você precisa do Java 8 ou superior, da biblioteca IronPDF integrada via Maven ou Gradle e de uma chave de licença válida configurada em sua aplicação. A biblioteca suporta estruturas de marcadores de camada única e de múltiplas camadas.
Posso criar hierarquias de marcadores com vários níveis em PDFs?
Sim, o IronPDF suporta a criação de estruturas de marcadores de camada única e de múltiplas camadas. Você pode criar navegação hierárquica com marcadores pai e filho usando a classe BookmarkManager para organizar documentos PDF complexos.
Qual a finalidade dos marcadores e dos índices em PDFs?
Os marcadores e os índices em PDFs melhoram significativamente a usabilidade dos documentos, proporcionando uma navegação estruturada. Eles permitem que os usuários acessem diretamente seções importantes, como o sumário, o que é especialmente útil para documentos extensos, relatórios ou PDFs com vários capítulos. O IronPDF facilita a implementação programática desses recursos de navegação.
Que outras funcionalidades de manipulação de PDF estão disponíveis além da marcação de marcadores?
Além de adicionar marcadores, o IronPDF oferece recursos abrangentes de manipulação de PDFs, incluindo a fusão de PDFs, a criação de formulários, a adição de marcas d'água e várias outras funcionalidades de processamento de documentos. Essas funcionalidades se integram perfeitamente com aplicativos Java para um gerenciamento completo de PDFs.
Como faço para salvar um PDF depois de adicionar marcadores?
Após adicionar marcadores usando o BookmarkManager do IronPDF, salve o documento PDF modificado chamando o método saveAs() no seu objeto PdfDocument, especificando o caminho do arquivo de saída onde deseja salvar o PDF com marcadores.

