JavaでMarkdown形式をWord文書やPDF形式に変換する方法

Markdownは、シンプルさと使いやすさから、プレーンテキストドキュメントの作成や編集に人気があります。しかし、ドキュメントをプロフェッショナルに共有したり、オフラインで使用するために印刷したりする場合など、より洗練されたプレゼンテーションが必要な場合があります。MarkdownをWordとPDF形式に変換することで、ユーザーは書式設定オプションを強化し、さまざまなプラットフォーム間での互換性を確保し、視覚的に魅力的でプロフェッショナルなドキュメントを作成することができます。この記事では、**Javaを使用してMarkdown形式をWordとPDFの両方の形式に変換する方法**について説明します。

- **[Javaを使用してMarkdownファイルをWordドキュメントに変換する](#javaを使用してmarkdownファイルをwordドキュメントに変換する)**
- **[Javaを使用してMarkdownファイルをPDFファイルに変換する](#javaを使用してmarkdownファイルをpdfファイルに変換する)**
- **[結果のドキュメントのページ設定をカスタマイズする](#結果のドキュメントのページ設定をカスタマイズする)**

この記事で使用されている方法は、[Spire.Doc for Java](https://jp.e-iceblue.com/download/spire-doc-for-java.html)が必要です。依存関係に追加する方法については、リンクを参照してください。

[無料ライセンスの申請](https://www.e-iceblue.com/TemLicense.html)

## Javaを使用してMarkdownファイルをWordドキュメントに変換する
Markdown形式をWordとPDFドキュメント形式に変換するには、`Document.loadFromFile(String: fileName, FileFormat.Markdown)` メソッドを使用してMarkdownファイルを読み込み、`Document.saveToFile(String: fileName, FileFormat: fileFormat)` メソッドを使用してファイルをWordまたはPDFドキュメントとして保存するだけです。

Markdownファイルでは画像がリンクとして保存されているため、変換後に画像を保持する場合は、さらに処理する必要があることに注意してください。

MarkdownファイルをWordドキュメントに変換する手順は以下のとおりです。

1. 必要なモジュールをインポートします。
2. `Document`クラスのインスタンスを作成します。
3. `Document.loadFromFile(String: fileName, FileFormat.Markdown)` メソッドを使用してMarkdownファイルを読み込みます。
4. `Document.saveToFile(String: fileName, FileFormat.Docx)` メソッドを使用してMarkdownファイルをWordドキュメントとして保存します。
5. リソースを解放します。

**コード例**
```java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;

public class MarkdownToWord {
    public static void main(String[] args) {
        // Documentのインスタンスを作成します
        Document doc = new Document();

        // Markdownファイルを読み込みます
        doc.loadFromFile("サンプル.md", FileFormat.Markdown);

        // MarkdownファイルをWord文書として保存します
        doc.saveToFile("output/MarkdownをWordに変換.docx", FileFormat.Docx);
        doc.dispose();
    }
}
```
**元のMarkdownファイル**
![Javaを使用してMarkdownファイルをWordドキュメントに変換](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/42001614-b7d3-36a4-5eeb-77ef84cac651.png)

**結果**
![Javaを使用してMarkdownファイルをWordドキュメントに変換](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/fc379780-82bd-83d5-e83f-5c20716b23a4.png)

## Javaを使用してMarkdownファイルをPDFファイルに変換する
`Document.saveToFile()` メソッドの形式パラメータとして`FileFormat.PDF` Enumを使用することで、Markdownファイルを直接PDFドキュメントに変換することができます。

MarkdownファイルをPDFドキュメントに変換する手順は以下のとおりです。

1. 必要なモジュールをインポートします。
2. `Document`クラスのインスタンスを作成します。
3. `Document.loadFromFile(String: fileName, FileFormat.Markdown)` メソッドを使用してMarkdownファイルを読み込みます。
4. `Document.saveToFile(String: fileName, FileFormat.PDF)` メソッドを使用してMarkdownファイルをWordドキュメントとして保存します。
5. リソースを解放します。

**コード例**
```java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;

public class MarkdownToPDF {
    public static void main(String[] args) {
        // Documentのインスタンスを作成します
        Document doc = new Document();

        // Markdownファイルを読み込みます
        doc.loadFromFile("サンプル.md");

        // MarkdownファイルをPDFファイルとして保存します
        doc.saveToFile("output/MarkdownをPDFに変換.pdf", FileFormat.PDF);
        doc.dispose();
    }
}
```

**結果**
![Javaを使用してMarkdownファイルをPDFファイルに変換](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/7075ac92-57fb-a8af-c763-f2a28c60b55d.png)

## 結果のドキュメントのページ設定をカスタマイズする
デフォルトのスタイルで変換する以外にも、変換前に`PageSetup`クラスのメソッドを使用してページ設定を行うことで、結果のドキュメントのページ余白やページサイズなどのページ設定を制御することができます。

結果のドキュメントのページ設定をカスタマイズする手順は以下のとおりです。

1. 必要なモジュールをインポートします。
2. `Document`クラスのインスタンスを作成します。
3. `Document.loadFromFile(String: fileName, FileFormat.Markdown)` メソッドを使用してMarkdownファイルを読み込みます。
4. `Document.getSections().get()` メソッドを使用して最初のセクションを取得します。
5. `PageSetup`クラスのメソッドを使用して、ページサイズ、ページの向き、ページ余白を設定します。
6. `Document.saveToFile(String: fileName, FileFormat.PDF)` メソッドを使用してMarkdownファイルをWordドキュメントとして保存します。
7. リソースを解放します。

**コード例**
```java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.PageSetup;
import com.spire.doc.Section;
import com.spire.doc.documents.MarginsF;
import com.spire.doc.documents.PageOrientation;
import com.spire.doc.documents.PageSize;

public class PageSettingMarkdown {
    public static void main(String[] args) {
        // Documentのインスタンスを作成します
        Document doc = new Document();

        // Markdownファイルを読み込みます
        doc.loadFromFile("サンプル.md");

        // 最初のセクションを取得します
        Section section = doc.getSections().get(0);

        // ページのサイズ、向き、余白を設定します
        PageSetup pageSetup = section.getPageSetup();
        pageSetup.setPageSize(PageSize.Letter);
        pageSetup.setOrientation(PageOrientation.Landscape);
        pageSetup.setMargins(new MarginsF(100, 100, 100, 100));

        // MarkdownファイルをPDFファイルとして保存します
        doc.saveToFile("output/MarkdownをPDFに変換.pdf", FileFormat.PDF);
        doc.dispose();
    }
}
```

**結果**
![結果のドキュメントのページ設定をカスタマイズ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/32ddaf43-28e5-af0c-acf3-38f743015a32.png)

この記事では、MarkdownファイルをWordドキュメントとPDFファイルに変換する方法を、手順ガイドとコード例とともに示しました。

ドキュメント処理と変換のスキルについては、[Spire.Doc for Javaのチュートリアル](https://jp.e-iceblue.com/tutorials/java/spire-doc-java/doc-java-program-guide-content.html)を参照してください。