DocまたはDocxのWordドキュメントからPDFドキュメントへの変換（Java）

Wordドキュメントを共有する前に、それをPDFファイルに変換することで、異なるデバイス上で同じように見えるようにし、MS Wordを持っていない受信者がそれを見ることができるようにすることができます。この記事では、[Free Spire.Doc for Java](https://jp.e-iceblue.com/introduce/free-spire-doc-for-java.html)を使用して**WordドキュメントをPDF、PDF/A、パスワードで保護されたPDFに変換する方法**を説明します。

- **[WordをPDFに変換する](#wordをpdfに変換する)**
- **[WordをPDF/Aに変換する](#wordをpdfaに変換する)**
- **[Wordをパスワードで保護されたPDFに変換する](#wordをパスワードで保護されたpdfに変換する)**

## 【依存関係の追加】

> **この方法は、無料のFree Spire.Doc 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.doc.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>
```

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

まず、**[Free Spire.Doc for Java](https://jp.e-iceblue.com/download/free-spire-doc-for-java.html)** の公式サイトよりzipファイルをダウンロードします。zipファイルを解凍し、libフォルダの下にあるSpire.Doc.jarファイルを依存関係としてプロジェクトにインポートしてください。

## WordをPDFに変換する
> **Spire.Doc for Javaを使用すれば、Word文書をPDF文書に変換することは非常に簡単です。
その手順は以下の通りです。**

- **Document** クラスのインスタンスを作成し、**Document.loadFromFile()** メソッドを使用してWordドキュメントを読み込みます。
- **Document.saveToFile(filePath, FileFormat.PDF)** メソッドを呼び出して、WordドキュメントをPDFドキュメントとして保存します。

**Java**

```Java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;

public class convertWordToPDF {
    public static void main(String[] args) {

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

        //Wordドキュメントを読み込む
        document.loadFromFile("C:/Sample.docx");

        //WordドキュメントをPDFドキュメントとして保存する
        document.saveToFile("WordからPDFへの変換.pdf", FileFormat.PDF);
    }
}
```

### 【結果のPDFドキュメント】

![WordをPDFに変換する](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/0942cdb0-48a3-1572-5f1a-95b09d5cfb8a.png)

## WordをPDF/Aに変換する

PDF/Aは、電子文書の長期保存を目的として設計された特殊なPDF形式です。Spire. Doc for Javaは、Wordドキュメントから以下のPDF/Aドキュメントへの変換をサポートしています。

- PDF/A-1a
- PDF/A-1b
- PDF/A-2a
- PDF/A-2b
- PDF/A-2u
- PDF/A-3a
- PDF/A-3b
- PDF/A-3u
- PDF/x-1a:2001

> **WordドキュメントをPDF/Aドキュメントに変換する手順は、以下のとおりです。**

- **Document** クラスのインスタンスを作成し、**Document.loadFromFile()** メソッドを使用してWordドキュメントを読み込みます。
- **ToPdfParameterList** クラスのインスタンスを作成します。
- **ToPdfParameterList.setPdfConformanceLevel(PdfConformanceLevel)** メソッドを使用してPDFドキュメントの標準化水準を指定する。
- **Document.saveToFile(filePath, ToPdfParameterList)** メソッドを呼び出して、WordドキュメントをPDFに保存します。

**Java**

```Java
import com.spire.doc.Document;
import com.spire.doc.ToPdfParameterList;
import com.spire.pdf.PdfConformanceLevel;

public class convertWordToPDFA {
    public static void main(String[] args){

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

        //Wordドキュメントを読み込む
        document.loadFromFile("C:/Sample.docx");

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

        //PDFの標準化水準を設定する
        parameterList.setPdfConformanceLevel(PdfConformanceLevel.Pdf_A_1_A);

        //ドキュメントをPDF/Aに変換する
        document.saveToFile("WordからPDFAへの変換.pdf", parameterList);
    }
}
```

### 【結果のPDFドキュメント】

![WordをPDF/Aに変換する](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/3f2b6ee1-6ec5-a92d-c339-a0694343ad7c.png)

## Wordをパスワードで保護されたPDFに変換する

また、Word to PDF変換中にパスワードでPDFを暗号化することができます。

> **以下は、そうするための手順です。**

- **Document** クラスのインスタンスを作成し、**Document.loadFromFile()** メソッドを使用してWordドキュメントを読み込みます。
- **ToPdfParameterList** クラスのインスタンスを作成します。
- **ToPdfParameterList.getPdfSecurity().encrypt(openPassword, permissionPassword, PdfPermissionsFlags, PdfEncryptionKeySize)** メソッドを使用してPDFの開くパスワードと権限パスワードを設定します。
- **Document.saveToFile(filePath, ToPdfParameterList)** メソッドを呼び出し、WordドキュメントをPDFに保存しています。

**Java**

```Java
import com.spire.doc.Document;
import com.spire.doc.ToPdfParameterList;
import com.spire.pdf.security.PdfEncryptionKeySize;
import com.spire.pdf.security.PdfPermissionsFlags;

public class convertWordToPasswordProtectedPDF {
    public static void main(String[] args){

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

        //Wordドキュメントを読み込む
        document.loadFromFile("C:/Sample.docx");

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

        //PDFの開くパスワードと許可パスワードを設定する
        String password = "123456";
        toPdf.getPdfSecurity().encrypt(password, password, PdfPermissionsFlags.None, PdfEncryptionKeySize.Key_128_Bit);

        //Wordドキュメントをパスワード付きでPDFに保存する
        document.saveToFile("Wordドキュメントからパスワード付きPDFへの変換.pdf", toPdf);
    }
}
```

![Wordをパスワードで保護されたPDFに変換する](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/39ea7f67-05a0-4238-7a4f-041bf864ac8d.png)

> **この記事では、Free Spire.Doc for Javaを使用して、Wordドキュメントを数種類のPDFドキュメントに変換する方法を紹介します。実際には、Spire.Doc for Javaは、他の多くのファイル形式にWordドキュメントを変換することができます。あなたが変換機能についての詳細情報を知りたい場合は、[Spire.Doc Forum](https://www.e-iceblue.com/forum/spire-doc-f6.html)に移動してください。**