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

チャクニット・ビン
チャクニット・ビン
2024年9月18日
更新済み 2024年12月15日
共有:
This article was translated from English: Does it need improvement?
Translated
View the article in English

JavaプロジェクトにPDFブックマークを含めることで、PDFの使いやすさとナビゲーションを大幅に向上させることができます。 PDFのアウトラインは、PDF内での簡単なナビゲーション方法を提供します。目次のように、ドキュメント内の重要なページに簡単に移動することができます。

IronPDFは、PDFファイルの操作を簡単にする強力なPDFツールです。 そのブックマークツールは、PDFファイルにカスタムブックマークを作成するための簡潔で使いやすい方法を提供します。

今日から無料トライアルでIronPDFをあなたのプロジェクトで使い始めましょう。

最初のステップ:
green arrow pointer

始める前に

また、IronPDFは開発用にライセンスされている必要があるため、ライセンスキーを正しく設定する必要があります。

アウトラインとブックマークを追加する例

本日の例では、このサンプルPDFを使用して、アウトラインとブックマークを適用します。

ブックマークの単一層を追加

指定されたファイルパスからこのPDFをPdfDocumentクラスを使用してロードした後、BookmarkManagerオブジェクトを取得することで、ドキュメントにブックマークを追加し始めることができます。 ブックマークをブックマークコレクションの開始または終了に追加するには、addBookMarkAtEnd メソッドと addBookMarkAtStart メソッドを使用できます。

ヒント
すべてのページインデックスはゼロベースのインデックスに従うことを忘れないでください。

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

上記のPDFビューアを使用すると、ほとんどのブラウザーの左上隅にある目次を確認して、追加したすべてのブックマークを確認できます。

複数のブックマークレイヤーを追加

この例では、単一のブックマーク層を作成したときと同様に、ブックマークを追加することから始めます。 次に、insertBookmark メソッドを使用して、新しいレイヤーに新しいブックマークを追加し、その名前をメソッドの最初のパラメーターを使用して設定します。 2番目のパラメーターは、新しいブックマークがリンクするページを指定します。 新しいレイヤーを作成するには、新しいブックマークを既存のブックマークの「子」として作成します。これは、メソッドの第3パラメーターを使用して行います。

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

ここでは、新しいブックマークのツリー構造を持つPDFをご覧いただけます。 自分で概要を確認して、insertBookmark 機能が新しいブックマークのレイヤーをどのように追加したかを確認してください。


ブックマークを取得する

IronPDFのブックマークツールは、新しいブックマークを追加するだけでなく、既存のブックマークを取得して表示します。 ブックマークをナビゲートするには、まず PdfDocument.fromFile メソッドを使用してPDFを読み込みます。 次に、BookmarkManager オブジェクトにアクセスし、getBookmarks メソッドを使用して、子ブックマークを含むすべてのブックマークを取得します。 最後に、リスト内のインデックスでブックマークを取得するためにgetメソッドを使用します。

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

特定のインデックスにブックマークを挿入する

取得したブックマークを使用して、ドキュメント内の特定のインデックスに新しいブックマークを追加することができます。 これを行うには、対象のブックマークを選択し、その後に新しいブックマークを追加するためにaddNextBookmarkメソッドを使用します。 たとえば、「複数のブックマーク階層を追加する」セクションからPDFを取得し、「Third Page」ブックマークの後にブックマークを追加します。 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"));
    }
}
JAVA

次の内容にご注意ください。
2つのPDFドキュメントをマージした際に、その中のブックマークが同一の名前を共有している場合、ブックマークリスト自体に不具合が生じる可能性があります。

チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。