【Linux】複数の PowerPoint ファイルを一括で PDF に変換し 1 つの PDF に結合する方法

Linux,Mac,Windows,お役立ち情報,プログラムLibreOffice,PDF,pdftk,PowerPoint,pptx,シェルスクリプト,恵迪寮

私の個人的な趣味で北海道大学恵迪寮で毎年作られる寮歌の歌詞カードを作って、音声ファイルと結合して YouTube にあげているのですが、この歌詞カード部分が欲しいと依頼されました。100 個以上ある歌詞データが 複数の PowerPoint ファイルによるスライドとなっていて扱いが不便だったので、一括で処理した方法をメモしておきます。

なおここで用いる方法は Linux を使っています。WIndows でも WSL (Windows Subsystem for Linux) を導入すれば使えるでしょう。Mac もよく知らんけど使えるでしょう。

複数 PowerPoint から PDF への一括変換

Microsoft PowerPoint には PDF で保存する機能もあるので、当然ファイルを一つずつ開いて保存すればよいです。しかし 100 以上も作業するのは大変なのでコマンドラインで操作します。

Linux で使えるオフィスソフトウェアである LibreOffice はコマンドラインで操作することもできるので活用します。以下が変換するコマンドの例です。

$file_name="変換したい.pptx"
dest_dir="出力先のパス"
libreoffice --convert-to pdf --outdir $dest_dir --headless $file_name

今回は複数ファイルについて処理したいので $file_name のところはワイルドカードなどで指定できます。したがって変換したい pptx が置いてあるディレクトリに移動したりして

dest_dir="出力先のパス"
libreoffice --convert-to pdf --outdir $dest_dir --headless *.pptx

とすれば全部変換できます。話によると Word の docx とか Excel の xlsx とかでもできるらしいですね。

できた PDF ファイルを一つに結合

ファイルごとにバラバラの PDF ファイルが出来上がるので一つに結合します。結合には pdftk コマンドを利用します。

pdftk *.pdf cat output merged.pdf

ここでワイルドカードなどを使うと結合する順番がアルファベット順になったりするので、必要に応じてファイル名の指定方法を考える必要があります。

なお pdftk コマンドがないときは Ubuntu など Debian 系の場合は以下のコマンドでインストールできます。

apt install poppler-utils

できあがった PDF

出来上がった PDF を載せておきます。この PDF ファイルに含まれる寮歌の歌詞などは恵迪寮自治会寮歌普及委員会の好意によって提供されています。個人での利用には制限を設けておりませんが、再頒布、投影など、個人を超える範囲で利用される場合はご相談ください。

恵迪寮寮歌歌詞カードスライド (PDF; 63 MB)

なお、すべての曲が含まれておりませんが、随時更新予定です。

参考資料