0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JavaでPDFのブックマークを追加、読み込み、変更、削除する方法

Last updated at Posted at 2022-10-26

しおりは、テキストや画像、場所に印をつけることで、PDFドキュメント内の特定の場所に素早くジャンプできるようにするものです。ページ数の多いPDFドキュメントを処理する際、目的の場所に簡単にジャンプできるように、プログラム上でブックマークを追加、読み込み、修正、削除する必要がある場合があります。この記事では、以下の5つのパートから、無料のFree Spire.PDF for Javaを使用してPDFのブックマークを処理する方法を紹介します。

【依存関係の追加】

この方法は、無料のFree Spire.PDF for Javaが必要ですので、先にjarファイルをインポートしてください。

1. Maven

Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリケーションに JAR ファイルをインポートすることができます。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>

2. 公式サイトよりJarファイルをダウンロード

まず、Free Spire.PDF for Java の公式サイトよりzipファイルをダウンロードします。zipファイルを解凍し、libフォルダの下にあるSpire.Pdf.jarファイルを依存関係としてプロジェクトにインポートしてください。

PDFドキュメントにブックマークを追加する

Spire.PDF for javaは、PDFファイルにしおりを追加するPdfDocument.getBookmarks().add() メソッドを提供しています。

以下は、その詳細な手順です。

  • PdfDocumentクラスのインスタンスを作成し、PdfDocument.loadFromFile() メソッドを使用してPDFドキュメントを読み込みます。
  • PDF内のページをループし、PdfPageBase.getPages().get(i) メソッドを使用してページ集を取得します。
  • PdfDocument.getBookmarks().add() メソッドを使用してPDFにブックマークを追加します。
  • ブックマークの対象ページと位置を設定します。
  • ブックマークの色とテキストスタイルを設定します。
  • PdfDocument.saveToFile() メソッドを使用して、ドキュメントを別のPDFファイルに保存します。

Java

import com.spire.pdf.*;
import com.spire.pdf.actions.PdfGoToAction;
import com.spire.pdf.bookmarks.PdfBookmark;
import com.spire.pdf.bookmarks.PdfTextStyle;
import com.spire.pdf.general.PdfDestination;
import com.spire.pdf.graphics.PdfRGBColor;

import java.awt.*;
import java.awt.geom.Point2D;

public class addBookmarks {

    public static void main(String[] args) throws Exception {


        //PdfDocumentクラスのインスタンスを作成する
        PdfDocument pdf = new PdfDocument();

        //PDFファイルを読み込む
        pdf.loadFromFile("C:/Sample.pdf");

        //PDFファイル内のページをループする
        for (int i = 0; i < pdf.getPages().getCount(); i++) {
            PdfPageBase page = pdf.getPages().get(i);

            //ブックマークを追加する
            PdfBookmark bookmark = pdf.getBookmarks().add(String.format("ブックマーク-%s", i + 1));

            //目的ページと場所を設定する
            PdfDestination destination = new PdfDestination(page, new Point2D.Float(0, 0));
            bookmark.setAction(new PdfGoToAction(destination));

            //文字色を設定する
            bookmark.setColor(new PdfRGBColor(new Color(139, 69, 19)));

            //テキストのスタイルを設定する
            bookmark.setDisplayStyle(PdfTextStyle.Bold);


            //結果ファイルを保存する
            pdf.saveToFile("ブックマークの追加.pdf");
        }
    }
}

【出力されるPDFドキュメント】

PDFドキュメントにブックマークを追加する

PDFドキュメントのブックマークを読み取る

Spire.PDF for Javaを使用すると、PDFドキュメント内のブックマークのタイトルや書式などの情報を取得することができます。

具体的な手順は次のとおりです。

  • PdfDocumentクラスのインスタンスを生成し、PdfDocument.loadFromFile() メソッドを使用してPDFドキュメントを読み込みます。
  • PdfDocument.getBookmarks() メソッドを使用してPDFドキュメントのブックマーク集を取得します。
  • カスタムメソッド GetBookmarks() を使ってブックマークの内容を取得し、TXTファイルに保存します。

Java

import com.spire.pdf.PdfDocument;
import com.spire.pdf.bookmarks.PdfBookmark;
import com.spire.pdf.bookmarks.PdfBookmarkCollection;

import java.io.FileWriter;
import java.io.IOException;

public class getBookmarks {

    public static void main(String[] args) throws Exception {

        //PdfDocumentクラスのインスタンスを作成する
        PdfDocument pdf = new PdfDocument();

        //PDFファイルを読み込む
        pdf.loadFromFile("ブックマークの追加.pdf");

        //ブックマークコレクションを取得する
        PdfBookmarkCollection bookmarks = pdf.getBookmarks();

        String result = "ブックマークの取得.txt";

        GetBookmarks(bookmarks, result);
    }
    private static void GetBookmarks(PdfBookmarkCollection bookmarks, String result) throws IOException {

        //StringBuilderクラスのインスタンスを宣言する
        StringBuilder content = new StringBuilder();

        //PDFブックマーク情報を取得する
        if (bookmarks.getCount() > 0) {
            content.append("Pdf bookmarks:");
            for (int i = 0; i < bookmarks.getCount(); i++) {
                PdfBookmark parentBookmark = bookmarks.get(i);
                content.append(parentBookmark.getTitle() + "\r\n");

                //テキストのスタイルを取得する
                String textStyle = parentBookmark.getDisplayStyle().toString();
                content.append(textStyle + "\r\n");
            }
        }
        writeStringToTxt(content.toString(),result);
    }

    public static void writeStringToTxt(String content, String txtFileName) throws IOException {
        FileWriter fWriter = new FileWriter(txtFileName, true);
        try {
            fWriter.write(content);
        } catch (IOException ex) {
            ex.printStackTrace();
        } finally {
            try {
                fWriter.flush();
                fWriter.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }
}

【出力されるTXTファイル】

PDFドキュメントのブックマークを読み取る

PDFドキュメントのブックマークのタイトルと色を変更する

PDFファイル内の既存のブックマークを編集することができます。例えば、ブックマークのタイトル、フォントの色、テキストの表示スタイルなどを変更します。

以下は、その詳細な手順です。

  • PdfDocumentクラスのインスタンスを生成し、PdfDocument.loadFromFile() メソッドを使用してPDFドキュメントを読み込みます。
  • PdfDocument.getBookmarks().get(0) メソッドを使用してPDFドキュメントの最初のブックマークを取得します。
  • bookmark.setTitle() メソッドを使用して、ブックマークのタイトルを設定します。
  • ブックマークの色と表示スタイルを設定します。
  • PdfDocument.saveToFile() メソッドを使用して、ドキュメントを別のPDFファイルに保存します。

Java

import com.spire.pdf.PdfDocument;
import com.spire.pdf.bookmarks.PdfBookmark;
import com.spire.pdf.bookmarks.PdfTextStyle;
import com.spire.pdf.graphics.PdfRGBColor;

import java.awt.*;


public class editBookmark {

    public static void main(String[] args) throws Exception {

        //PdfDocumentクラスのインスタンスを作成する
        PdfDocument pdf = new PdfDocument();

        //PDFファイルを読み込む
        pdf.loadFromFile("ブックマークの追加.pdf");

        //最初のブックマークを取得する
        PdfBookmark bookmark = pdf.getBookmarks().get(0);

        //ブックマークのタイトルを変更する
        bookmark.setTitle("新しいタイトル");

        //ブックマークの文字色を変更する
        bookmark.setColor(new PdfRGBColor(new Color(255,0,0)));

        //ブックマークのテキストスタイルを変更する
        bookmark.setDisplayStyle(PdfTextStyle.Italic);

        //結果ファイルを保存する
        pdf.saveToFile("ブックマークの編集.pdf");
    }
}

【出力されるPDFドキュメント】

PDFドキュメントのブックマークのタイトルと色を変更する

PDFドキュメントの特定のブックマークを削除する

Spire.PDF for javaは、PDFドキュメントから特定のブックマークを削除することをサポートしています。

詳細な手順は以下の通りです。

  • PdfDocumentクラスのインスタンスを作成し、PdfDocument.loadFromFile() メソッドを使用してPDFドキュメントを読み込みます。
  • PdfDocument.getBookmarks().removeAt() メソッドを使用してPDFドキュメントの特定のブックマークを削除します。
  • PdfDocument.saveToFile() メソッドを使用して、ドキュメントを別のPDFファイルに保存します。

Java

import com.spire.pdf.PdfDocument;

public class deleteBookmarks {

    public static void main(String[] args) throws Exception {

        //PdfDocumentクラスのインスタンスを作成する
        PdfDocument pdf = new PdfDocument();

        //PDFファイルを読み込む
        pdf.loadFromFile("ブックマークの追加.pdf");

        //2つめのブックマークを削除する
        pdf.getBookmarks().removeAt(1);

        //結果ファイルを保存する
        pdf.saveToFile("ブックマークの削除.pdf");
    }
}

【出力されるPDFドキュメント】

PDFドキュメントの特定のブックマークを削除する

PDFドキュメント内のすべてのブックマークを削除する

Spire.PDF for javaは、PDFファイルからすべてのブックマークを削除する PdfDocument.getBookmarks().clear() メソッドを提供しています。

ここでは、その詳細な手順を説明します。

  • PdfDocumentクラスのインスタンスを生成し、PdfDocument.loadFromFile() メソッドを使用してPDFドキュメントを読み込みます。
  • PdfDocument.getBookmarks().clear() メソッドを使用して、PDFドキュメントのすべてのブックマークを削除します。
  • PdfDocument.saveToFile() メソッドを使用して、ドキュメントを別のPDFファイルに保存します。

Java

import com.spire.pdf.PdfDocument;

public class deleteBookmarks {

    public static void main(String[] args) throws Exception {

        //PdfDocumentクラスのインスタンスを作成する
        PdfDocument pdf = new PdfDocument();

        //PDFファイルを読み込む
        pdf.loadFromFile("ブックマークの追加.pdf");

        //2つめのブックマークを削除する
        pdf.getBookmarks().removeAt(1);

        //結果ファイルを保存する
        pdf.saveToFile("ブックマークの削除.pdf");
    }
}

【出力されるPDFドキュメント】

PDFドキュメント内のすべてのブックマークを削除する

この記事では、PDFのブックマークの追加、読み込み、変更、削除の手順を紹介します。PDFドキュメントの処理についての詳細は、Spire.PDF Forumをご覧ください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?