IRONSOFTWAREHOME

JavaでPDFのしおりとアウトラインを追加する方法

Curtis Chau
Curtis Chau
Updated: 2026年6月16日

IronPDF for Javaライブラリを使用して、BookmarkManagerクラスを介してPDF文書にブックマークおよびアウトラインをプログラム的に追加できます。単一レイヤーおよび複数レイヤーのブックマーク構造の両方をカスタマイズ可能なナビゲーションポイントとともにサポートします。

クイックスタート: Java で PDF ブックマークを追加する
  1. IronPDF Javaライブラリをインストールし、ライセンスキーを設定します
  2. PdfDocument.fromFile()を使用してPDFを読み込む
  3. BookmarkManagerを取得する
  4. addBookMarkAtEnd("Title", pageNumber)を使用してブックマークを追加する
  5. pdf.saveAs()でPDFを保存する
  1. 1Install IronPDF with Maven Central Repository

    > mvn install

  2. 2このコード スニペットをコピーして実行します。

    //: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. 3実際の環境でテストするためにデプロイする

    今日プロジェクトで IronPDF を使い始めましょう無料トライアル
    arrow pointer

PDFブックマークは文書の使いやすさとナビゲーションを向上させます。 アウトラインはPDF内での構造化されたナビゲーションを提供し、ユーザーが目次のように直接重要なセクションにジャンプできるようにします。 これは長い文書、レポート、または整理されたナビゲーションを必要とする多章構成のPDFを扱う時に不可欠です。

IronPDFはJavaアプリケーションでのPDF操作を簡素化します。 ブックマークAPIは、PDFファイルにカスタムブックマークを作成するための簡単なメソッドを提供します。 このライブラリはJavaアプリケーションと統合され、ブックマーク以外にも様々なPDF操作機能をサポートします。例えば、PDFの統合、フォームの作成、およびウォーターマークの追加などが可能です。

始める前に何が必要ですか?

PDFブックマークの実装前に、IronPDFがJavaプロジェクトに設定されていることを確認してください。 このライブラリはJava 8以上を必要とし、MavenまたはGradleで統合されます。 プロジェクトのビルドファイルにIronPDFの依存関係を追加します。詳細なセットアップ手順については、Get Started Overviewを参照してください。

開発および運用での使用には有効なライセンスキーが必要です。 アプリケーションの開始時にライセンスキーを設定し、IronPDFメソッドを呼び出す前に行ってください。 ライセンスオプションに関する情報は、ライセンスガイドを訪問してください。

ヒント: IronPDFのすべてのページインデックスはゼロベースの番号を使用します。 ドキュメントのページ1はインデックス0、ページ2はインデックス1と続きます。

PDFにアウトラインとブックマークを追加する方法

以下の例では、アウトラインとブックマークの作成を実演するためにサンプルPDFを使用します。 このプロセスは、既存のPDF文書を読み込み、IronPDFのBookmarkManagerを使用して文書全体にナビゲーションポイントを追加することを含みます。

ブックマークの単一レイヤーを追加するにはどうすればよいですか?

フラットなブックマークリストは、レポート、製品マニュアル、またはそれ自体で独立しているセクションを持つスライドデッキのような、明確で階層的でない構造を持つドキュメントに適しています。 BookmarkManagerオブジェクトを取得します。

addBookMarkAtStartメソッドは、ブックマークコレクションの終わりまたは始まりにエントリを追加します。 これらのメソッドにより、ドキュメントの構造に合わせてブックマークを整理する柔軟性が得られます。 各エントリは表示タイトルとゼロベースのページインデックスを受け取ります。

//: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

上のPDFビューアーを使用して、ほとんどのブラウザの左上隅にある目次を確認し、追加されたすべてのブックマークを表示してください。 このフラットなブックマーク構造は、シンプルな組織ニーズを持つ文書に対する簡単なナビゲーションを提供します。

ブックマークの複数のレイヤーを作成するにはどうすればよいですか?

ネストされたブックマークは、技術文書や研究報告、または章だけでなくその章内のサブセクションにも移動する必要がある複数章の文書に最適です。 前のセクションで作成した同じフラットなブックマークから開始し、次に新しいレイヤーにエントリを追加するためにinsertBookmarkを使用します。

insertBookmarkメソッドは、ブックマーク名、ターゲットページインデックス、親のブックマーク名、および先行兄弟のブックマーク名の4つのパラメータを受け取ります。 親ブックマーク名を渡すことで、その下に子エントリを作成します。 兄弟パラメータをnullに設定すると、その親の最初の子として新しいエントリが配置されます。

//: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

上記のPDFは、insertBookmarkによって作成されたブックマークのツリー構造を示しています。 アウトラインパネルを展開して、各子エントリが親の下にどのようにネストされるかを確認してください。 このレイヤードアプローチは、章、サブチャプター、付録があるレポートに適しています。


既存のしおりを PDF から取得するには?

PDFからブックマークデータを読み取ることは、ナビゲーション構造全体を再構築することなく文書を更新する必要がある場合の前提条件です。 IronPDFは、ブックマークを追加するために使用されるのと同じBookmarkManagerインターフェースを介してこれをアクセス可能にします。 getBookmarks()を呼び出してすべてのトップレベルブックマークを取得します。

リスト内の位置で特定のブックマークにアクセスするにはgetPageIndex()はターゲットページ番号をゼロベースで返します。 子ブックマークはgetBookmarks()によって返されるフラットなリストには含まれません; 各親ブックマークのgetChildren()メソッドを通じてそれらにアクセスします。

//: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
ご注意: getBookmarks()メソッドはトップレベルのブックマークのみからなるフラットなリストを返します。 完全なブックマークツリーを巡察するには、入れ子になったエントリを持つ各ブックマークに対してgetChildren()を再帰的に呼び出してください。)]

この取得パターンは、配布前の既存のPDFのナビゲーション構造を監査する際や、必要なセクションが公開前に正しくブックマークされていることを確認する必要のあるツールを作成する際に便利です。


特定のインデックスにブックマークを挿入するにはどうすればよいですか?

特定の位置でブックマークを挿入することで、アウトライン全体を最初から再構築することなく、新しいセクションを追加して既存のPDFを段階的に更新できます。 これは、パイプラインで生成または修正されるPDFがあり、新しいコンテンツが下流で追加される場合に特に役立ちます。

addNextBookmarkを呼び出します。 新しいエントリを1つのレベル下に配置するためにaddChildBookmarkを使用し、選択されたブックマークの下に入れ子にします。 両方のメソッドは、タイトルの文字列とゼロベースのページインデックスを受け入れます。

//: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
ご注意: 同じ名前のブックマークを共有する2つのPDFをマージすると、結果のブックマークリストは予測外に動作する場合があります。 クリーンなアウトラインを維持するために、名前が競合するブックマークをマージ前にリネームしてください。

addChildBookmarkメソッドは、新しいエントリを選択されたブックマークの下に入れ子にして1つのレベル下に配置します。 両方のメソッドは、タイトルの文字列とゼロベースのページインデックスを受け入れます。

JavaでPDFブックマークの次のステップは何ですか?

PDFブックマークは、複雑な文書をスクロールせずに直接ナビゲーション経路をユーザーに提供します。 IronPDFのBookmarkManagerは、単一レベルのエントリリストの追加、深いマルチレベルアウトラインの構築、既存エントリの取得、特定の位置への挿入などの完全なブックマーク操作を処理します。

ドキュメント構造やナビゲーション機能を引き続き扱うために、以下の関連リソースを探索してください:

  • JavaでPDFを分割:それぞれ独自のブックマーク構造を持った小さく自分を構成する文書を作成します
  • JavaでPDFを印刷:ナビゲーションが保存された状態でブックマーク付きの文書をプリンターに送信します
  • Java PDFチュートリアル:一般的なPDFワークフローの完全なエンドツーエンドの例
  • Javaで注釈をPDFに追加:特定のページ位置にコメントやマークアップを添付します
  • IronPDF for Javaの例:IronPDF Java APIの完全なコードサンプルをコピー貼り付け

無料トライアルを開始して、ブックマークやアウトライン、他のナビゲーション機能をJavaのPDFワークフローに追加します。 生産用途のライセンスを購入するには、ライセンスオプションを表示してください。

よくある質問

JavaでPDF文書にしおりを追加するには?

PDF を PdfDocument.fromFile() を使ってロードし、 pdf.getBookmark() を呼び出して BookmarkManager を取得します。 addBookMarkAtEnd("Title", pageIndex) を使用して、表示名とゼロベースのページ番号で各ブックマークを追加し、 pdf.saveAs() で保存します。

Java で PDF ブックマークを追加するための前提条件は何ですか?

Java 8 以上が必要で、Maven または Gradle 依存関係として IronPDF ライブラリを追加し、すべての IronPDF 呼び出しの前に License.setLicenseKey() で有効なライセンスキーを設定してください。他に必要なツールやフレームワークはありません。

PDFに複数レベルのしおり階層を作成できますか?

はい。まず addBookMarkAtEnd でトップレベルのブックマークを追加し、次に insertBookmark(name, pageIndex, parentName, siblingName) を呼び出して、親ブックマークの下に子エントリーをネストします。新しいエントリーを最初の子として配置するには、兄弟名に null を渡します。

addBookMarkAtEnd と insertBookmark の違いは何ですか?

addBookMarkAtEnd はブックマークリストの最後に新しいトップレベルエントリを追加します。insertBookmark は、階層内の特定の位置にブックマークを配置するため、親ブックマーク名とオプションの先行兄弟を指定して、ネストされたアウトラインを可能にします。

Java で PDF から既存のブックマークを読み取るにはどうすればよいですか?

pdf.getBookmark().getBookmarks() を呼び出して、トップレベルのブックマークのフラットリストを取得します。list.get(index) を使用して個々のエントリにインデックスでアクセスします。タイトルには bookmark.getText() を、ゼロベースのページ番号には bookmark.getPageIndex() を使用します。子ブックマークには bookmark.getChildren() を使ってアクセスできます。

特定の既存のブックマークの後にブックマークを挿入するにはどうすればよいですか?

getBookmarks() を使用してブックマークリストを取得し、インデックスでターゲットエントリーを選択した後、 bookmark.addNextBookmark("Title", pageIndex) を使用してすぐ後に兄弟を挿入するか、 bookmark.addChildBookmark("Title", pageIndex) でその下に新しいエントリをネストします。

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
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

準備はできましたか?

バージョン:2026.6リリースされたばかり

あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDFのため for Java Mavenライブラリ
Mavenでインストール

バージョン: 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
Java PDF JAR
JAR をダウンロード

バージョン: 2026.6

Manually install into your project

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDFのため for Java Mavenライブラリ
Mavenでインストール

バージョン: 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
Java PDF JAR
JAR をダウンロード

バージョン: 2026.6

Manually install into your project