JavaでPDFを画像に変換する方法（PNG, JPG, SVG, TIFF）

PDFファイルは、ファイル共有に適しており、文書内の内容が変更されることなく、デバイス間で正しく表示されることが保証されています。しかし、PDF文書を個々の画像ファイルに変換した方が有利な場合もあります。例えば、PDFをJPGファイルに変換すると、文書全体のサイズを小さくすることができます。つまり、ファイルを別の人に転送したり、Webサイトにアップロードしたりするのが容易になるわけです。今回は、無料の[Free Spire.PDF for Java](https://jp.e-iceblue.com/introduce/free-.html)を使って、PDFをPNG、JPG、SVG、TIFFの画像ファイルに変換する方法を紹介します。

- **[PDFをPNGに変換する](#pdfをpngに変換する)**
- **[PDFをJPGに変換する](#pdfをjpgに変換する)**
- **[PDFをSVGに変換する](#pdfをsvgに変換する)**
- **[PDFをTIFFに変換する](#pdfをtiffに変換する)**

## 【依存関係の追加】
> **この方法は、無料のFree Spire.PDF for Javaが必要ですので、先にjarファイルをインポートしてください。**

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

```XML
<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](https://jp.e-iceblue.com/download/free-.html-java) の公式サイトよりzipファイルをダウンロードします。zipファイルを解凍し、libフォルダの下にあるSpire.Pdf.jarファイルを依存関係としてプロジェクトにインポートしてください。

## PDFをPNGに変換する

PNGファイルは、Portable Network Graphic (ポータブル・ネットワーク・グラフィックス、PNG) フォーマットで保存された画像で、一般的にWeb画像、電子写真、背景が透明な画像を保存するために使用されます。以下は、Spire.PDF for Javaを使用して、PDF文書を複数のPNG画像ファイルに変換する手順です。

- **PdfDocument** クラスオブジェクトを作成します。
- **PdfDocument.loadFromFile()** メソッドでPDFファイルを読み込む。
- **PdfDocument.getConvertOptions().setPdfToImageOptions()** メソッドに 0 を指定して、生成される画像の背景を透明化します。
- ドキュメント内のページをループし、**PdfDocument.saveAsImage(pageIndex)** メソッドで特定のページをバッファ画像として保存しています。
- **ImageIO.write()** メソッドを用いて、画像データをPNGファイルとして書き出します。

**Java**

```Java
import com.spire.pdf.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;

public class convertPdfToTransparentPng {

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

        //PdfDocument クラスのオブジェクトを作成する
        PdfDocument doc = new PdfDocument();

        //PDF文書の読み込み
        doc.loadFromFile("洞窟芸術.pdf");

        //背景を透明にする
        doc.getConvertOptions().setPdfToImageOptions(0);

        //BufferedImage変数を宣言する
        BufferedImage image;

        //ページをループする
        for (int i = 0; i < doc.getPages().getCount(); i++) {

            //現在のページをバッファリング画像として保存する
            image = doc.saveAsImage(i);

            //画像データを.pngファイルとして書き込む
file file = new File（“图像/” + String.format（“图像-%d.png”， i）;（
            ImageIO.write(image, "png", file);
        }
        doc.close();
    }
}
```

### 【出力されるPNGファイル】

![PDFをPNGに変換する](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/d6f215cc-2cf8-40e6-2436-53f3eb8758b7.png)

## PDFをJPGに変換する
JPGファイルは、JPEG形式で保存されたラスターイメージで、一般的にデジタル写真や画像編集ソフトウェアで作成されたグラフィックを保存するために使用されます。以下は、Spire.PDF for Javaを使用して、PDF文書を個々のJPGファイルに変換する手順です。

- **PdfDocument** クラスオブジェクトを作成します。
- **PdfDocument.loadFromFile()** メソッドでPDFファイルを読み込みます。
- 文書内のページをループし、**PdfDocument.saveAsImage(pageIndex)** メソッドで特定のページをバッファ画像として保存します。
- **ImageIO.write()** メソッドで画像データをJPGファイルとして書き出します。

**Java**

```Java
import com.spire.pdf.PdfDocument;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class convertPdfToJpg {

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

        //PdfDocument クラスのオブジェクトを作成する
        PdfDocument doc = new PdfDocument();

        //PDF文書の読み込み
        doc.loadFromFile("洞窟芸術.pdf");

        //BufferedImage変数を宣言する
        BufferedImage image;

        //ページをループする
        for (int i = 0; i < doc.getPages().getCount(); i++) {

            //現在のページをバッファリング画像として保存する
            image = doc.saveAsImage(i);

            //バッファリング画像を再作成する
            BufferedImage newImg = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
            newImg.getGraphics().drawImage(image, 0, 0, null);

            //画像データを.jpgファイルとして書き込む
            File file = new File("画像/" + String.format("画像-jpg-%d.jpg", i));
            ImageIO.write(newImg, "JPG", file);
        }
        doc.close();
    }
}
```

### 【出力されるJPGファイル】

![PDFをJPGに変換する](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/6748783f-12d0-6ba8-c235-b38593928582.png)

## PDFをSVGに変換する
SVGとは、Scalable Vector Graphic（スケーラブル・ベクター・グラフィック）のことです。これは、グラフィックが品質を失うことなく、任意のサイズに拡大縮小できることを意味します。以下は、Spire.PDF for Javaを使用して、PDFドキュメントを単一または複数の別々のSVGファイルに変換する手順です。

- **PdfDocument** クラスオブジェクトを作成します。
- **PdfDocument.loadFromFile()** メソッドでPDFファイルを読み込みます。
- **PdfDocument.saveToFile()** メソッドで各ページを個別のSVGファイルとして保存します。

**Java**

```Java
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;

public class convertPdfToSvg {

    public static void main(String[] args) {

        //PdfDocument クラスのオブジェクトを作成する
        PdfDocument doc = new PdfDocument();

        //PDF文書の読み込み
        doc.loadFromFile("洞窟芸術.pdf");

        //PDF文書を1つのSVGファイルとして変換したい場合は、setOutputToOneSvg()メソッドに true を指定してください。
        //doc.getConvertOptions().setOutputToOneSvg(true);

        //各ページを個別のSVGファイルとして保存する
        doc.saveToFile("画像/SVG.svg", FileFormat.SVG);
        doc.close();
    }
}
```

### 【出力されるSVGファイル】

![PDFをSVGに変換する](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/761eb74c-5a85-e4e5-fe30-ac5363eb55f9.png)

## PDFをTIFFに変換する
TIFFは、編集が必要な高画質画像に最適なファイル形式です。TIFFファイルはサイズが大きいので、オンラインでの共有には向いていません。TIFFからPDFへの変換は、以下のように3行のコードで済みます。

- **PdfDocument** クラスオブジェクトを作成します。
- **PdfDocument.loadFromFile()** メソッドでPDFファイルを読み込む。
- **PdfDocument.saveToTiff()** メソッドを使用してPDFファイルをTIFFに保存する。

**Java**

```Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;

import java.awt.*;
import java.io.File;

public class convertPdfToTiff {

    public static void main(String[] args) {

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

        //PDF文書の読み込み
        pdf.loadFromFile("洞窟芸術.pdf");

        //PDF文書全体をTIFFに変換する
        pdf.saveToTiff("画像/Tiff.tiff");
    }
}
```

### 【出力されるTiffファイル】

![PDFをTIFFに変換する](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/c523cc97-3267-91bb-e8af-ddae43449323.png)

> **この記事では、PDFドキュメントを数種類の画像ファイルに変換する詳細な手順を説明します。あなたが他のファイル形式にPDFに変換する方法を知りたい場合は、[Spire.PDF Forum](https://www.e-iceblue.com/forum/spire-pdf-f7.html)に移動してください。**