【Java】Word文書でフォント書式を設定する方法

Word文書では、テキストの書式設定が重要な役割を担っており、文書の読みやすさや美観、専門性に影響を与えることがあります。例えば、適切なフォントとフォントサイズを使用することで、文書を読みやすくし、読者が疲れないようにすることができます。下線や蛍光ペンの色など、特殊な書式を使えば、テキストの一部を強調することができ、文書をより専門的に見せることができます。この記事では、無料の[Free Spire.Doc for Java](https://jp.e-iceblue.com/introduce/free-spire-doc-for-java.html)を使って**Word文書のフォント書式を設定**する方法を紹介します。
一般的に使用されるフォント書式には、**フォント**、**フォントの色**、**フォント サイズ**、**蛍光ペンの色**、**斜体**、**太字**、**下線**、**取り消し線**、**囲み線**、**文字の網かけ**、**傍点**、**上付き文字**、**下付き文字**があります。
### 【依存関係の追加】
この方法は、無料の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.2.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文書のフォント書式の設定
テキストにフォント書式を設定するには、テキストを**TextRange**で取得し、**CharacterFormat**クラスのメソッドを使用して**TextRange**内の文字を書式設定する必要があります。以下は、Free Spire.Doc for Javaを使用してWord文書にフォントの書式を設定する手順です。
- **Document** オブジェクトを作成します。
- **Document.addSection()** メソッドを使用して、ドキュメントにセクションを追加します。
- **Section.addParagraph()** メソッドで、セクションに段落を追加します。
- **Paragraph.appendText()** メソッドで段落にテキストを追加し、**TextRange** オブジェクトを返します。
- **CharacterFormat** クラスのメソッドを使用して、テキスト範囲内の文字にフォント名、フォントサイズ、囲み線、ハイライト色などの書式を設定します。
- **Document.saveToFile()** メソッドを使用して、文書をWordファイルに保存します。

**Java**
```java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.Section;
import com.spire.doc.documents.BorderStyle;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.SubSuperScript;
import com.spire.doc.documents.UnderlineStyle;
import com.spire.doc.fields.TextRange;
import com.spire.doc.fields.shape.Emphasis;

import java.awt.*;

public class ApplyFormattingToCharacters {

    public static void main(String[] args) {

        //Documentのオブジェクトを作成する
        Document document = new Document();

        //セクションを追加する
        Section sec = document.addSection();

        //段落を追加する
        Paragraph paragraph = sec.addParagraph();
        paragraph.appendText("ここでは、さまざまな文字スタイルを持つ段落を紹介します。これは、");
        paragraph.getStyle().getCharacterFormat().setFontName("Yu Mincho");

        //段落に文字を追加し、TextRangeオブジェクトを返す
        TextRange tr = paragraph.appendText("取り消し線付きの文字");

        //TextRangeオブジェクトで文字書式を取り消し線に設定する
        tr.getCharacterFormat().isStrikeout(true);

        //文字に網かけを付ける
        paragraph.appendText("です。これは、");
        tr = paragraph.appendText("網かけ付きの文字");
        tr.getCharacterFormat().isShadow (true);

        //フォントサイズを設定する
        paragraph.appendText("です。これは、");
        tr = paragraph.appendText("大きなフォントサイズの文字");
        tr.getCharacterFormat().setFontSize(20);

        //フォントを設定する
        paragraph.appendText("です。これは、");
        tr = paragraph.appendText("BIZ UDGothicのフォントで書かれた文字");
        tr.getCharacterFormat().setFontName("BIZ UDGothic");

        //フォントの色を設定する
        paragraph.appendText("です。これは、");
        tr = paragraph.appendText("赤で書かれた文字");
        tr.getCharacterFormat().setTextColor(Color.red);

        //文字に太字と斜体を適用する
        paragraph.appendText("です。これは、 ");
        tr = paragraph.appendText("太字と斜体の文字");
        tr.getCharacterFormat().setBold(true);
        tr.getCharacterFormat().setItalic(true);

        //文字に下線を引く
        paragraph.appendText("です。これは、");
        tr = paragraph.appendText("下線付きの文字");
        tr.getCharacterFormat().setUnderlineStyle(UnderlineStyle.Single);

        //文字に背景色をつける
        paragraph.appendText("です。これは、");
        tr = paragraph.appendText("蛍光ペンの色の付いた文字");
        tr.getCharacterFormat().setHighlightColor(Color.green);

        //文字に囲み線を適用する
        paragraph.appendText("です。これは、");
        tr = paragraph.appendText("囲み線付きの文字");
        tr.getCharacterFormat().getBorder().setBorderType(BorderStyle.Single);
        tr.getCharacterFormat().getBorder().setColor(Color.black);

        //文字に傍点を付ける
        paragraph.appendText("です。これは、");
        tr = paragraph.appendText("傍点付きの文字");
        tr.getCharacterFormat().setEmphasisMark(Emphasis.Dot_Below);

        //文字に上付き文字を適用する
        paragraph.appendText("です。これは、数学の公式です： a");
        tr = paragraph.appendText("2");
        tr.getCharacterFormat().setSubSuperScript(SubSuperScript.Super_Script);
        paragraph.appendText(" + b");
        tr = paragraph.appendText("2");
        tr.getCharacterFormat().setSubSuperScript(SubSuperScript.Super_Script);
        paragraph.appendText(" = c");
        tr = paragraph.appendText("2");
        tr.getCharacterFormat().setSubSuperScript(SubSuperScript.Super_Script);
        paragraph.appendText("。");

        //ドキュメントを保存する
        document.saveToFile("文字書式の設定.docx", FileFormat.Docx);
    }
}
```
**【結果文書】**
![Word文書のフォント書式の設定](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/0b23c70f-4044-7000-2063-24873606ad39.png)

> **この記事では、Word文書でフォントの書式を設定する方法について説明します。Free Spire.Doc for Javaは、その他にも様々なWord文書処理に使用できます。詳しくは、[Spire.Doc for Javaチュートリアル](https://jp.e-iceblue.com/tutorials/java/spire-doc-java/doc-java-program-guide-content.html)をご覧ください。**