JAVA PDFブックマークの追加、修正、削除

より長いPDFファイルを読む場合は、前回の場合に迅速に前回の位置に達することができるように、ブックマークを挿入します。また、既存のしおりについても必要に応じて変更や削除などの操作が可能である。本文章はJavaプログラミングを通してPDFブックマークの添付、修正及び削除方法を展示します。

**ツール使用:**

- Free Spire.Pdf for Java 2.4.4 （無費版）
- IntelliJ IDEA

**Jarパッケージ導入:**
:clap: **方式1:** まず、[公式サイト](https://www.e-iceblue.com/Download/pdf-for-java-free.html)からFree Spire.PDF for Javaを取得した後に圧縮を開放する。以下は、IDEAにおいてProject Structureインタフェースを簡単に開く方式。以下の図のように:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/7dc20a73-e627-dc3d-fe55-bd41d64ba7b3.png)
その後、以下の手順で操作を行います。①「Modules」－「Dependencies」を選択し、外付けjarパッケージを追加します。②「Attach File or Directores」画面に入ってjarファイルのパスを選択し、「OK」をクリックします。次の図のように:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/7003fc81-5889-93bf-cc78-47b0f6dcb05b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/3b49662a-2471-5e06-b799-dae2108daf8e.png)
:clap: **方式二:** Mavenを使ってjarパッケージを配置する。[導入方法](https://www.e-iceblue.com/Tutorials/Licensing/How-to-install-Spire.PDF-for-Java-from-Maven-Repository.html)を参考にすることができます。
**テストドキュメント:**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/b8ed2660-e1ac-541a-a56a-3c84371d3151.png)

##JAVAコード参照
####1.ブックマークをつける追加
```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 bookmark {
    public static void main(String[] args) throws Exception{
             //Create a pdf document. 
            PdfDocument doc = new PdfDocument();
            //Load PDF file from the disk
            doc.loadFromFile("data/SampleEn.pdf");
            //Get the third page 
            PdfPageBase page = doc.getPages().get(2);
            //Add the bookmark 
            PdfBookmark bookmark = doc.getBookmarks().add("3ページ目");
            //Set the position-At the start of the page 
            PdfDestination bookmarkLocation = new PdfDestination(page, new Point2D.Float(0 , 0));
            bookmark.setAction(new PdfGoToAction(bookmarkLocation)); 
            //Set the style of bookmark
            bookmark.setColor(new PdfRGBColor(Color.BLUE));
            bookmark.setDisplayStyle(PdfTextStyle.Bold);
            PdfPageBase page1 = doc.getPages().get(3);
            PdfBookmark bookmark1 = doc.getBookmarks().add("4ページ目");
            PdfDestination bookmarkLocation1 = new PdfDestination(page1, new Point2D.Float(0 , 0));
            bookmark1.setAction(new PdfGoToAction(bookmarkLocation1));
            bookmark1.setColor(new PdfRGBColor(Color.RED));
            bookmark1.setDisplayStyle(PdfTextStyle.Bold);
            //Save pdf file. 
        doc.saveToFile("output/bookmarks.pdf");
        doc.close();
        }
    }

```
**ブックマーク追加効果:**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/36ed2535-9c93-cd4e-85d5-78146efde23b.png)

####2.栞を书き直す
```java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.bookmarks.*;
import com.spire.pdf.graphics.PdfRGBColor;
import java.awt.*;

public class updateBookmark {
    public static void main(String[] args) {
        //Create the PDF
        PdfDocument doc = new PdfDocument();
        //Load PDF file from the disk
        doc.loadFromFile("output/bookmarks.pdf");
        //Get the first bookmark 
        PdfBookmark bookmark = doc.getBookmarks().get(0);
        //Change the title of the bookmark 
        bookmark.setTitle("変更されたブックマーク");
        //Set the color of the bookmark 
        bookmark.setColor(new PdfRGBColor(Color.black));
        //Set the outline text style of the bookmark 
        bookmark.setDisplayStyle(PdfTextStyle.Bold);
        //Save the file 
        doc.saveToFile("output/updateBookmark.pdf");
        doc.close();
    }
}
```
**ブックマークの効果を変更する:**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/8de546d9-fea9-b05a-1b8b-904da0e399fb.png)
####3.しおりを削除する

```java
import com.spire.pdf.PdfDocument;

public class deleteBookmark {
    public static void main(String[] args) {
        //Create the PDF
        PdfDocument doc = new PdfDocument();
        //Load PDF file from the disk
        doc.loadFromFile("output/bookmarks.pdf");
        //removeAt() to delete the bookmark
        doc.getBookmarks().removeAt(0);
        //Save the file
        doc.saveToFile("output/deleteBookmark.pdf");
        doc.close();
    }
}
```
**ブックマークの削除効果:**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/e6a5ea88-657c-1a3b-bd35-147ccccf3a7d.png)
**（全文が終わる）**