【小ネタ】Officeが入ってないLinuxなどのマシンでPowerPointファイルをスライド一枚ずつJPEGファイルに変換する方法

2024.03.12

こんちには。

データアナリティクス事業本部 機械学習チームの中村(nokomoro3)です。

Officeが入ってないLinuxなどのマシンでPowerPointファイルをスライド一枚ずつJPEGファイルに変換する方法を紹介します。

手順

以下の手順で行います。

  • pptxファイルをpdfファイルに変換
    • LibreOfficeを使いました
    • 実はLibreOfficeであればpptファイルをpptxにすることも可能です(便利!)
  • pdfファイルの各ページをJPEGファイルに変換
    • Pythonでpdf2imageを使いました

動作環境

WSL(Ubuntu-20.04 LTS)で行います。

環境準備

環境準備は以下を実行すればOKです。

# pptxをpdfに変換するlibreofficeをインストール
sudo apt install libreoffice

# 日本語フォルトをインストール(※重要)
sudo apt install -y fonts-ipafont

# フォントを反映(※重要)
fc-cache -fv

# pdf2imageに必要なので
sudo apt install -y poppler-utils

# Pythonのライブラリをインストール
pip3 install pdf2image

特にフォントの部分は重要で、こちらを実施しないとpdf変換の時点で文字化けが発生します。

やってみる

まずはsample.pptxを準備します。今回は以下の元になったpptxファイルを使用します。

sample.pptxを以下でsample.pdfに変換します。

# pptxをpdfに変換
libreoffice --headless --convert-to pdf ./sample.pptx --outdir .

その後以下のようなpdf2images.pyを作成します。

import pathlib
import pdf2image

pdf_path = pathlib.Path("sample.pdf")
img_path = pathlib.Path("./images")
img_path.mkdir(exist_ok=True, parents=True)

pdf2image.convert_from_path(
    pdf_path
    , output_folder=img_path
    , fmt='jpeg'
    , output_file=pdf_path.stem)

最後にPythonファイルを実行します。

python3 pdf2images.py

以下のように各スライドが./images配下にJPEGファイルとして格納されることを確認できました。

まとめ

いかがでしたでしょうか。小ネタですが本記事がご参考になれば幸いです。

参考リンク