PowerPointからベクタ形式でEPSにするまとめ

# はじめに

PowerPointで作図した図はベクタ形式であり，そのままpdfなどに埋め込むと拡大縮小に頑健な図となります．
これまでにいくつか方法が編み出されてきましたが，どの方法もしばしばうまくいきません．
そこで，本記事では，これくらいやればうまくいくレベルの網羅性を持った情報を掲載します．


条件は以下です．

- PowerPointで作図したものをベクタ形式でEPSにする
- キャンバスはみ出し作図OK

実行環境は以下です．

- Windows 10 Professional
- Office 2016

なお，文字が含まれる場合は要注意です．フォントの問題があるからです．
EPSにするのであれば，とりあえず，どのOSやPCにも必ず入ってそうなArialなどの[標準的なフォント](https://hasegawahiroshi.jp/notes/font-family)を使うようにしましょう．
あるいは，フォント埋め込みで対応できます．今のところeps出力を含めシンプルにやれる方法がわかりません．その２が一番やりやすいと思います．
数式が入っている場合は，おそらくフォント埋め込みは必須です．

# 方法１：ツールを使う
Officeではウィンドウズメタファイル（wmfやemf）なるものを出力できます．これはベクタ形式で保存可能な画像形式です．
ここからEPSを作るというツールがあります．
Metafile to EPS Converter，wmf2epsが挙げられます．
以下の記事をご参照ください．

- Metafile to EPS Converter
    - [Metafile to EPS Converter で Windows Metafile を EPS に変換](https://qiita.com/tubo28/items/1f8672fb164aafa9ab31)
    - [Metafile to EPS Converter で大きい図がはみ出る](http://d.hatena.ne.jp/MATSUKAWA/20170121/1484992376)
- wmf2eps
    - [WMF2EPS プリンタドライバの設定方法](https://www.lightstone.co.jp/latex/product_wmf2eps.html)

ただし，これらは[うまく動かない場合が報告されています](https://kano.arkoak.com/2015/09/26/eps/)．また，wmf2epsは開発が終了しており，Windows8までのサポートとなっているようです．
おそらく一番実行環境に左右される方法だと思います．

# 方法２：ベクタ形式のペイントツールを経由する

Adobe Illustratorや[InkScape](https://inkscape.org/ja/)を経由する方法があります．
PowerPointにて，図を選択して「図として保存」を選び，ベクタ形式であるwmfやemf，svgで出力し，これを読み込み，epsで出力できます．おそらく特に苦労はしないと思います．svgはOffice2016から扱えるようになりました．
おそらくバージョン移行にも頑健です．どちらも重いアプリケーションですが，現状かなりお勧めです．

InkScapeでは，コマンドラインでの変換も可能です．引数の詳細は`--help`で確認できます．GUI開くのが重い！という場合に便利です．
Windowsの場合，InkScape.exeではなくInkScape.comがコマンドライン用です．それ以外のOSはInkScapeの実行ファイルに引数を渡せます．
PostScriptレベルは2(デフォルト)と3が使用可能とのことです．

`(InkScapeのパス)\InkScape.com -z -f=(対象のファイル) -E=(出力EPSファイル名) --export-ps-level=(PostScriptレベル．)`

`--export-text-to-path (-T)`オプションを使うとテキストがパスになります．ファイルサイズは増大しますが，フォントの有無の問題が無くなります．


# 方法３：OpenOfficeを経由する

サードパーティのOfficeクローン，OpenOfficeはEPS出力に対応していますので，その２と同様，ここを経由する方法があります．

- [パワーポイントの図をepsにする](https://qiita.com/zk_phi/items/3fb92a89d4344cabc368)

ただし，OfficeからOpenOfficeへの変換の際にレイアウトが崩れる可能性があります．

# 方法４：仮想EPSプリンタで出力する
昔からある伝統的な方法です．
ちゃんとやるとうまくいきますが，手順が複雑で，かつちゃんとやらないとやっぱりうまくいきません．
また，バージョンが移行するたびにUIや操作方法が変わりますが，歴史的にみると同じ操作はできるようになっています．

同趣旨の他記事による方法では，「キャンバスはみ出し作図OK」をクリアできませんので，改めて方法を記載します．
なお，下記の手順の半分は[こちら](https://kano.arkoak.com/2015/09/26/eps/)と重複していますので，ご参照ください．
なお，手順3に[GhostScript](https://www.ghostscript.com/)ならびに[GSView](http://pages.cs.wisc.edu/~ghost/gsview/)が必要です．未インストールであれば，インストールしてください．

1. 仮想EPSプリンタを設定する（Windows10の場合）．
    1. 新しいプリンタの追加ウィザードを開く．
        - スタートメニュー→設定（歯車アイコン）→デバイス→プリンターとスキャナー→プリンターとスキャナーの追加→プリンターが一覧にない場合
    2. ローカルプリンターまたはネットワークプリンターを手動設定で追加する を選択
    3. 既存のポートを使用→FILE: (ファイルへ出力)を選択
    4. 製造元：Generic，プリンター：MS Publisher Color Printerを選択
        - 無ければ登録済みの適当なPSプリンタドライバを利用（だいたい対応プリンタは名前にPSが付いている）
    5. プリンター名は適当に記入
2. PowerpointからEPSを出力する．
    1. Powerpointの新しいスライドを白紙で作成する
    2. レイアウトを白紙にする
    3. デザイン→スライドのサイズ→ユーザー設定のスライドのサイズ→出力したい図が入る十分な大きさのキャンバスサイズを設定．**必ず縦長にする**．
    5. 図をコピー＆ペーストする．
        - 既にあるスライドをリサイズすると，図の大きさも変わってしまい，面倒．
    4. ファイル→印刷
    5. プリンターを，先ほど作成した仮想EPSプリンタにする
    6. プリンターのプロパティ→詳細設定→ドキュメントのオプション→PostScriptオプション→PositScript出力オプションをEPS (Encapsulated PostScript)にする．
    7. 印刷ボタンを押す．
    8. **ファイルの種類を すべてのファイル にする**．
    9. 適当な名前.epsとして保存する．**拡張子を付けること**．
3. BoundingBoxを付ける．
    1. GSViewでepsを開く．
    2. 図がはみ出していたら，Media→User Definedから，十分入る大きさに設定する．
    3. File→PS to EPSを選ぶ．
    4. Automatically calculate Bounding Boxを選択状態にする．
    5. Yesを押す．
    6. **ファイル名を別名で**保存する．同じファイルに上書き保存してはいけない．

# まとめ

PowerPointからベクタ形式でEPSにする4つの手段についてまとめました．
また，古典的手法（仮想EPSプリンタ利用）については，はみ出し作図を許容する方法の情報を新たに提供しました．
これらの方法で，無事きれいな図を載せられることを祈ります．

なお，筆者は方法２を推しますが，普段は方法４を使っています．状況に応じてInkScapeを使って調整しています．

何か良い別の方法がありましたらぜひお教えください．