JavaでWord文書にテキスト透かしや画像透かしを追加する方法

Word文書に透かしを入れることで、情報の安全性を保ち、文書の無断複写を防止することができます。また、Word文書に特定の文字の透かしを入れることで、文書の利用者が文書の種類や目的などをすぐに把握できるようになります。さらに、透かしは文書の装飾としても使用でき、文書をより美しく、プロフェッショナルに見せることができます。この記事では、無料の[Free Spire.Doc for Java](https://jp.e-iceblue.com/introduce/free-spire-doc-for-java.html)を使って、**Word文書にテキスト透かしと画像透かしを追加する方法**を紹介します。
- **[JavaでWord文書にテキスト透かしを挿入する](#javaでword文書にテキスト透かしを挿入する)**
- **[JavaでWord文書に画像透かしを挿入する](#javaでword文書に画像透かしを挿入する)**

### 【依存関係の追加】
この記事の方法は、無料のWord文書処理Java API、Free Spire.Doc for Javaが必要です。このAPIは、[公式サイト](https://jp.e-iceblue.com/download/free-spire-doc-for-java.html)からダウンロードするか、Mavenでプロジェクトに導入することができます。Mavenのコードは以下の通りです。
```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.2.0</version>
    </dependency>
</dependencies>
```
## JavaでWord文書にテキスト透かしを挿入する
以下、詳しい手順を説明します：
- **Document**クラスのオブジェクトを作成し、Word文書を読み込みます。
```Document document = new Document("サンプル.docx");```

- **TextWatermark**クラスのオブジェクトを作成します。
```TextWatermark watermark = new TextWatermark();```

- **TextWatermark**クラスのメソッドを使用して、テキスト透かしのテキストとフォーマットを設定します。

- この透かしをWord文書に挿入します。
```document.setWatermark(watermark);```

- 文書を保存します。
```document.saveToFile("テキスト透かし.docx", FileFormat.Auto);```

**フルコードです：**
```java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.TextWatermark;
import com.spire.doc.documents.WatermarkLayout;

import java.awt.*;

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

        //Documentクラスのオブジェクトを作成し、Word文書を読み込む
        Document document = new Document("サンプル.docx");

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

        //テキスト透かしのテキストと形式を設定する
        watermark.setText("下書き");
        watermark.setColor(Color.blue);
        watermark.setFontName("Yu Mincho");
        watermark.setLayout(WatermarkLayout.Diagonal);
        watermark.setSemitransparent(true);
        watermark.setFontSize(48f);

        //この透かしをWord文書に挿入する
        document.setWatermark(watermark);

        //文書を保存する
        document.saveToFile("テキスト透かし.docx", FileFormat.Auto);
        document.dispose();
    }
}
```
**結果ファイル**
![Word文書にテキスト透かしを挿入する](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/9410cd8d-600b-aafe-6b31-0cc6fba7711f.png)

## JavaでWord文書に画像透かしを挿入する
以下、詳しい手順を説明します：
- **Document**クラスのオブジェクトを作成し、Word文書を読み込みます。
```Document document = new Document("サンプル.docx");```

- **PictureWatermark**クラスのオブジェクトを作成します。
```PictureWatermark watermark = new PictureWatermark();```

- **PictureWatermark**クラスのメソッドを使用して、画像透かしの画像とフォーマットを設定します。

- この透かしをWord文書に挿入します。
```document.setWatermark(watermark);```

- 文書を保存します。
```document.saveToFile("画像透かし.docx", FileFormat.Auto);```

**フルコードです：**
```java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.PictureWatermark;

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

        //Documentクラスのオブジェクトを作成し、Word文書を読み込む
        Document document = new Document("サンプル.docx");

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

        //画像透かしの画像と形式を設定する
        watermark.setPicture("アイコン.jpg");
        watermark.setScaling(100f);
        watermark.isWashout(true);

        //この透かしをWord文書に挿入する
        document.setWatermark(watermark);

        //文書を保存する
        document.saveToFile("画像透かし.docx", FileFormat.Auto);
        document.dispose();
    }
}
```
**結果ファイル**
![Word文書に画像透かしを挿入する](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/3b1a2c83-daf4-6941-8277-12112f9d1704.png)

> **Free Spire.Doc for Javaを使用して、テキスト透かしや画像透かしを追加する方法の紹介です。 Free Spire.Doc for Javaには他にも多くの機能があり、[Spire.Doc for Javaのチュートリアル](https://jp.e-iceblue.com/tutorials/java/spire-doc-java/doc-java-program-guide-content.html)で確認することができます。**

以下は、いくつかの機能のチュートリアルへのリンクです：
- [Word文書の作成、編集、保存](https://jp.e-iceblue.com/tutorials/java/spire-doc-java/doc-java-document-operation/java-create-a-word-document.html)
- [テキストの検索とハイライト](https://jp.e-iceblue.com/tutorials/java/spire-doc-java/doc-java-text/java-find-and-highlight-text-in-word.html)
- [画像の挿入](https://jp.e-iceblue.com/tutorials/java/spire-doc-java/doc-java-image-and-shape/java-insert-images-to-word-documents.html)
- [Word文書からPDF文書への変換](https://jp.e-iceblue.com/tutorials/java/spire-doc-java/doc-java-conversion/java-convert-word-to-pdf.html)