Marp CLI v4.1.0 に新しく追加された「編集可能な PowerPointファイルの出力」を試してみた

## はじめに

以下でポストしていた内容を、さっそく試してみました。

https://x.com/youtoy/status/1879805804716716342

試す内容は「Marp CLI v4.1.0」に実験的に新しく追加された、「--pptx-editable」オプションをつけた PowerPointファイルの出力です。

今までは、Markdown から PowerPoint のファイルへの変換を行った場合、変換後のファイルのスライド内にあるオブジェクトは編集不可でしたが、今回の機能を使うことでオブジェクトが編集可能になります。

## Marp CLI による PowerPointファイルの出力
### コマンドについて

今回使った Marp CLI による PowerPointファイルの出力は、以下の冒頭に書かれた方法です。

●Release v4.1.0 · marp-team/marp-cli
　https://github.com/marp-team/marp-cli/releases/tag/v4.1.0

![2025-01-16_21-10-46.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/936100c0-d921-a18a-2b7c-a5e0753423c4.jpeg)

上で書いたオプションを用いない場合の具体的なコマンドは以下です。
この手順の場合は npxコマンドを使うので、Node.js のセットアップをするなどして npxコマンド（npmコマンド）は使える状態にしておいてください。

```zsh
# Convert slide deck into PDF
npx @marp-team/marp-cli@latest slide-deck.md -o output.pdf
```

そして「編集可能な PowerPointファイルの出力」をするためのコマンドでは、上記に `--pptx-editable` を付け足す形になります。

なお「編集可能な PowerPointファイルの出力」を得るための変換では、LibreOffice（LibreOffice Impress）のインストールも必要になります。
※ 当初、これを忘れて手順を進めてしまったため、変換処理のところでエラーが出ました

### 変換対象のファイルを作る
スライドの元になる Markdown のファイルを準備します。

今回は以下の適当なプロンプトで、ChatGPT に作ってもらいました。

> 【プロンプト】
marpについて説明したMarp用のマークダウンのスライド3枚分のページを作って

![2025-01-16_21-14-04.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/ede953a2-fb0b-af8a-5879-be39e58d4c8f.jpeg)

得られた内容は以下のとおりです。

```markdown:test.md
---
marp: true
paginate: true
---

# Marpとは？

- MarpはMarkdownを使ってスライドを作成できるオープンソースのツールです。
- シンプルで直感的な記法により、効率的にプレゼン資料を作成できます。
- 主な特徴：
  - Markdown形式で記述
  - テーマやデザインのカスタマイズが可能
  - PDFやPPTXなどの形式でエクスポート可能

---

# Marpの使い方

1. **インストール**
   - VS Code用の[Marp for VS Code](https://marketplace.visualstudio.com/items?itemName=marp-team.marp-vscode)拡張機能をインストール。
   - または、[Marp CLI](https://github.com/marp-team/marp-cli)を使用。

2. **スライドの記述**
   - 各スライドは`---`で区切ります。
   - Markdown記法で内容を記述。

3. **プレビューとエクスポート**
   - VS Codeではリアルタイムプレビュー可能。
   - PDFやPPTX形式にエクスポート。

---

# 簡単な例

```markdown
---
marp: true
---

# タイトルスライド

- 作成: あなたの名前

---

# 次のスライド

- 内容1
- 内容2

---

# お問い合わせ

- メール: example@example.com
```

- この記法を元に簡単に美しいスライドを作成できます。
- ぜひ試してみてください！
```

今回は変換できるかどうかを軽く試す目的なので、中身やデザイン面は気にせず出力をそのままも

### PowerPointファイルへの変換
上記を PowerPointファイルへと変換します。

#### オプションなし
まずはオプションをつけずに変換します。

```zsh
npx @marp-team/marp-cli@latest test.md -o output1.pptx
```

![2025-01-16_21-16-55.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/b30c1538-1374-7b8f-9ba5-0105dab942df.jpeg)

以下のように PowerPoint のファイルが出力されています。スライド内のオブジェクトは編集はできないものでした。

![2025-01-16_21-18-00.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/6f16cf25-1f0f-8439-9f79-7841c0e189f3.jpeg)

#### オプションあり
今度は `--pptx-editable` をオプションとしてつけたものです。

```zsh
npx @marp-team/marp-cli@latest test.md --pptx-editable -o output2.pptx
```

試してみると「Failed converting Markdown. (LibreOffice soffice binary could not be found.)」というエラーが出ました。

![2025-01-16_21-19-28.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/7373052e-fe2c-4228-d6e4-9437bb53e43a.jpeg)


これについては、以下のポストのコメントでも説明が書かれていたものでした。

https://x.com/y_hatt/status/1879689001877348849

「LibreOffice Impress」が必要になるようです。

自分の環境には Homebrew が入っているので、brewコマンド（ `brew install libreoffice` ）で以下をインストールします。

●libreoffice — Homebrew Formulae
　https://formulae.brew.sh/cask/libreoffice

インストール後に再度コマンドを実行したところ、無事に出力ができました。

https://x.com/youtoy/status/1879869929790623976

PowerPoint のファイルを開いて確認してみたところ、オブジェクトが編集できるファイルになっていることを確認できました。

https://x.com/youtoy/status/1879871029868446130

## おわりに
Marp の話題は、以前は Markdown を書いてサクッとスライドが作れるという内容で見かけていましたが、生成AI が出てきた後は、以下のような話題で登場することが多くあったかと思います。

https://x.com/y_hatt/status/1872903189034614808

https://zenn.dev/su8ru/articles/marp-cli-lt-slide

今回は簡単なお試しだけなので、込み入った内容の変換という観点での確認はできてないですが、生成AI を組み合わせたスライド作りを便利に行えそうになったことは確かめられたのではないかとおもいます