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

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDFのJavaライブラリは、BookmarkManagerクラスを使ってPDFドキュメントにしおりやアウトラインをプログラムで追加することを可能にします。

クイックスタート: JavaでPDFのしおりを追加するとして

1.IronPDF Javaライブラリのインストールとライセンスキーの設定 2.PdfDocument.fromFile()を使ってPDFを読み込みます。 3.pdf.getBookmark()BookmarkManagerを取得します。 4.ブックマークを追加するには、addBookMarkAtEnd("Title", pageNumber)を使用します。 5.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">
    <h2>PDFブックマークとアウトラインを追加する方法</h2>
    <ol>
        <li><a href="https://ironpdf.com/java/#download-modal">PDFにしおりを追加するJavaライブラリをインストールする</a>。</li>
        <li>Utilize the <strong>`PdfDocument`</strong> class to load an existing PDF file in Java</li>
        <li>Create and customize the bookmarks with the <strong>`BookmarkManager`</strong> 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`を利用してドキュメント全体にナビゲーションポイントを追加します。

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

<!-- TODO: ここに画像を追加 -->
<!-- !![IronPdfでアウトラインとしおりを追加する例の結果を示す出力](/static-assets/images/TODO/add-outline-bookmarks-example-code_output.webp) -->
<!-- 説明コード実行の出力または結果を示すスクリーンショット -->

[`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`メソッドを使用すると、ブックマークコレクションの開始または終了にブックマークを追加できます。 これらの方法は、文書の構造に応じてブックマークを柔軟に整理することができます。

BRACKET-t-OPEN--すべてのページインデックスがゼロベースのインデックスに従うことを忘れないでください。

```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"));
    }
}
JAVA

ここで、ブックマークの新しいツリー構造を持つ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());
        }
    }
}
JAVA

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

検索されたブックマークを使用して、ドキュメント内の特定のインデックスに新しいブックマークを追加できます。 この機能は、既存の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"));
    }
}
JAVA

BRACKET-i-OPEN--しおりが同じ名前を持つ2つの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ドキュメントを保存してください。

Darrius Serrant
フルスタックソフトウェアエンジニア(WebOps)

Darrius Serrantは、マイアミ大学でコンピュータサイエンスの学士号を取得し、Iron SoftwareでフルスタックWebOpsマーケティングエンジニアとして働いています。若い頃からコーディングに惹かれ、コンピューティングを神秘的かつアクセス可能なものとし、創造性と問題解決のための完璧な媒体と考えていました。

Iron Softwareでは、新しいものを創造することと、複雑なコンセプトをより理解しやすくすることを楽しんでいます。Resident Developerの一人として、次世代に専門知識を共有するために、学生を教えることにも志願しました。

Darriusにとって、その仕事は価値があり、実際の影響があるため、満足感があります。

準備はできましたか?
バージョン: 2025.12 リリース