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

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

Kye Stuartによる

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

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

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

最初のステップ:
green arrow pointer

始める前に

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

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

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

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

このPDFを指定されたファイルパスから読み込んだ後、PdfDocumentクラス内で、ドキュメントにブックマークを追加するには、まずそれを取得します。ブックマークマネージャオブジェクト ブックマークは、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ビューアを使用すると、ほとんどのブラウザーの左上隅にある目次を確認して、追加したすべてのブックマークを確認できます。

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

この例では、単一のブックマーク層を作成したときと同様に、ブックマークを追加することから始めます。 次に、私たちは使用しますブックマークを挿入新しいレイヤーに新しいブックマークを追加し、その名前をメソッドの最初のパラメータで指定する方法。 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のブックマークツールは、新しいブックマークを追加するだけでなく、既存のブックマークを取得して表示します。 ブックマークを移動するには、まずPDFを使用してロードします。PdfDocument.fromFileメソッド。 次に、BookmarkManagerオブジェクトにアクセスして、ブックマークを取得すべてのブックマークを取得するメソッド(子ブックマークを含む)。 最後に、リスト内のインデックスでブックマークを取得するために 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それの後に新しいブックマークを追加するメソッド。 例えば、「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.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ドキュメントをマージした際に、その中のブックマークが同一の名前を共有している場合、ブックマークリスト自体に不具合が生じる可能性があります。