こんちには。
データアナリティクス事業本部 機械学習チームの中村(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ファイルとして格納されることを確認できました。
まとめ
いかがでしたでしょうか。小ネタですが本記事がご参考になれば幸いです。