JavaでPDFのしおりとアウトラインを追加する方法
IronPDF for Java ライブラリを使用すると、カスタマイズ可能なナビゲーション ポイントを持つ単一レイヤーと複数レイヤーの両方のブックマーク構造をサポートする BookmarkManager クラスを使用して、プログラムによって PDF ドキュメントにブックマークとアウトラインを追加できます。
クイックスタート: Java で PDF ブックマークを追加する
1.IronPDF Javaライブラリのインストールとライセンスキーの設定
PdfDocument.fromFile()を使用してPDFを読み込みBookmarkManagerをpdf.getBookmark()で取得します。addBookMarkAtEnd("Title", pageNumber)を使用してブックマークを追加します。pdf.saveAs()で PDF を保存します。
```java :title=クイックスタート PdfDocument pdf = PdfDocument.fromFile(Path.of("document.pdf")); BookmarkManager bookmarks = pdf.getBookmark(); bookmarks.addBookMarkAtEnd("第1章", 0); pdf.saveAs(Path.of("bookmarked.pdf"));
PDFのしおりは、文書の使いやすさとナビゲーションを大幅に向上させます。 アウトラインは、PDF内で構造化されたナビゲーションを提供し、ユーザーが目次のように重要なセクションに直接ジャンプできるようにします。 この機能は、長い文書やレポート、整理されたナビゲーションを必要とする複数章のPDFを扱う場合に不可欠です。
IronPDFはJavaアプリケーションでのPDF操作を簡素化します。 ブックマーク機能は、PDFファイルにカスタムブックマークを作成するための簡単な方法を提供します。 このライブラリはJavaアプリケーションとシームレスに統合され、[PDFのマージ](https://ironpdf.com/java/how-to/java-merge-pdf-tutorial/)、[フォームの作成](https://ironpdf.com/java/how-to/create-forms/)、[透かしの追加](https://ironpdf.com/java/how-to/custom-watermark/)など、ブックマーク以外にもさまざまなPDF操作機能をサポートしています。
<div class="hsg-featured-snippet">
<h3>PDFブックマークとアウトラインを追加する方法</h3>
<ol>
<li><a href="https://ironpdf.com/java/#download-modal">PDFにしおりを追加するJavaライブラリをインストールする</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>新しいアウトラインとブックマークを含むPDFドキュメントを保存する</li>
</ol>
</div>
## 始める前に何が必要ですか?
PDFブックマークを実装する前に、JavaプロジェクトでIronPDFが適切に設定されていることを確認してください。 ライブラリはJava 8以上が必要で、MavenまたはGradleを使って簡単に統合できます。 プロジェクトのビルドファイルにIronPDF依存関係を追加する必要があります。セットアップの詳細については[スタートアップの概要](https://ironpdf.com/java/docs/)を参照してください。
また、IronPDFの開発にはライセンスが必要ですので、ライセンスキーが正しく設定されていることを確認してください。 ライセンスオプションと実装に関する包括的な情報については、[ライセンスガイド](https://ironpdf.com/java/get-started/license-keys/)をご覧ください。 IronPDFの機能を使用する前に、アプリケーションの最初にライセンスキーを設定してください。
## PDFにアウトラインとしおりを追加するには?
この例では、この[サンプルPDF](/static-assets/ironpdf-java/howto/bookmarks/NovelSample.pdf)を使って、アウトラインとしおりを適用します。 このプロセスでは、既存の PDF ドキュメントを読み込み、IronPDF の `BookmarkManager` を使用してドキュメント全体にナビゲーション ポイントを追加します。
### ブックマークの単一レイヤーを追加するにはどうすればよいですか?
[`PdfDocument`.fromFile](https://ironpdf.com/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html)クラスを使用して指定されたファイル パスからこの PDF を読み込んだ後、 [`BookmarkManager`](https://ironpdf.com/java/object-reference/api/com/ironsoftware/ironpdf/bookmark/BookmarkManager.html)オブジェクトを取得してブックマークの追加を開始します。 `addBookMarkAtEnd` および `addBookMarkAtStart` メソッドを使用して、ブックマーク コレクションの先頭または末尾にブックマークを追加できます。 これらの方法は、文書の構造に応じてブックマークを柔軟に整理することができます。
ヒントすべてのページ インデックスはゼロ ベースのインデックスに従うことに注意してください。
```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"));
}
}
上記のPDFビューアで、ほとんどのブラウザの左上隅にある目次をチェックすると、追加されたすべてのブックマークが表示されます。 このシングルレイヤーのブックマーク構造は、シンプルな整理が必要なドキュメントにわかりやすいナビゲーションを提供します。
ブックマークの複数のレイヤーを作成するにはどうすればよいですか?
この例では、ブックマークの1つのレイヤーを作成するように、ブックマークを追加することから始めます。 次に、 insertBookmarkメソッドを使用して、新しいレイヤーに新しいブックマークを追加します。 最初のパラメータはブックマーク名を指定し、2番目のパラメータはブックマークがリンクするページを指定します。 新しいレイヤーを作成するには、メソッドの3番目のパラメータを使用して、新しいブックマークを既存のブックマークの"子"にします。 この階層構造は、章、節、サブセクションを持つ文書に適しています。
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"));
}
}
ここで、ブックマークの新しいツリー構造を持つPDFを確認できます。 概要をチェックして、insertBookmark 機能によって新しいブックマーク レイヤーがどのように追加されたかを確認します。 この多層的なアプローチは、技術文書、学術論文、または詳細なナビゲーション構造を必要とするあらゆる文書に適しています。
既存のしおりを PDF から取得するには?
IronPDFのブックマークツールは、新しいブックマークを追加するだけでなく、既存のブックマークを取得および表示することもできます。 この機能は、既存のPDFを修正したり、その構造を分析したりする際に不可欠です。 ブックマーク間を移動するには、まずPdfDocument.fromFileメソッドを使用して PDF を読み込みます。 次に、 BookmarkManagerオブジェクトにアクセスし、 getBookmarksメソッドを使用して、子ブックマークを含むすべてのブックマークを取得します。 最後に、get メソッドを使用して、リスト内のインデックスでブックマークを取得します。この機能により、既存の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 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());
}
}
}
特定のインデックスにブックマークを挿入するにはどうすればよいですか?
検索されたブックマークを使用して、ドキュメント内の特定のインデックスに新しいブックマークを追加できます。 この機能は、既存のPDFを新しいセクションで更新したり、文書構造を再編成したりする際に役立ちます。 これを実現するには、対象のブックマークを選択し、 addNextBookmarkメソッドを使用してその後に新しいブックマークを追加します。 例えば、'Add Multiple Layers of Bookmarks'セクションからPDFを取り出し、'Third Page'ブックマークの後にブックマークを追加します。 また、addChildBookmark メソッドを使用して子ブックマークをより深いレイヤーとして追加し、ドキュメントのナビゲーション階層を正確に制御することもできます。
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"));
}
}
複雑なPDFワークフローでしおりを扱う場合、しおり構造を持つ小さなドキュメントを作成するためにPDFを分割する、しおりナビゲーションをそのままにPDFを印刷するなど、IronPDFの他の機能を検討することをお勧めします。 より高度な例と完全なコードデモについては、ブックマークのコード例を例セクションで確認してください。
よくある質問
JavaでPDF文書にしおりを追加するには?
IronPDFのBookmarkManagerクラスを使ってPDF文書にしおりを追加することができます。まず、PdfDocument.fromFile()でPDFを読み込み、pdf.getBookmark()でBookmarkManagerにアクセスし、addBookMarkAtEnd()メソッドでしおりのタイトルとページ番号を指定してしおりを追加します。
プログラムでPDFのしおりを追加するための前提条件は何ですか?
IronPDFでPDFのしおりを追加するには、Java 8以上、MavenまたはGradle経由で統合されたIronPDFライブラリ、アプリケーションに設定された有効なライセンスキーが必要です。ライブラリはシングルレイヤーとマルチレイヤーのブックマーク構造をサポートします。
PDFに複数レベルのしおり階層を作成できますか?
はい、IronPDFはシングルレイヤーとマルチレイヤーのブックマーク構造をサポートします。複雑なPDFドキュメントを整理するためにBookmarkManagerクラスを使って親ブックマークと子ブックマークを持つ階層ナビゲーションを作成することができます。
PDFのしおりやアウトラインの目的は何ですか?
PDFのしおりやアウトラインは、構造化されたナビゲーションを提供することで、文書の使いやすさを大幅に向上させます。しおりやアウトラインは目次のような重要なセクションに直接ジャンプすることを可能にし、長い文書やレポート、複数の章からなるPDFには特に有用です。IronPDFはこれらのナビゲーション機能をプログラムで簡単に実装することができます。
ブックマーク以外にどのようなPDF操作機能がありますか?
しおりを追加するだけでなく、IronPDFはPDFのマージ、フォームの作成、透かしの追加、その他様々な文書処理機能を含む包括的なPDF操作機能を提供します。これらの機能は完全なPDF管理のためにJavaアプリケーションとシームレスに統合されます。
しおりを追加した後、PDFを保存する方法を教えてください。
IronPDFのBookmarkManagerを使ってしおりを追加したら、PdfDocumentオブジェクトのsaveAs()メソッドを呼び出して、しおりをつけたPDFを保存したい出力ファイルのパスを指定して、変更したPDFドキュメントを保存してください。

