背景
- pptxの中身をGPTで要約したいケース
- pptxをまずはPDFに変換して、その後PDFを画像化してgpt4oに要約させたいです
- 今回はpptxをPDFに変換する方法を紹介します
- PDFの画像化は以下記事
実装
- OSSのlibreofficeをheadlessで起動させて、
--convert-to pdf
を使います
import io
import os
import subprocess
import sys
class PPTXReader:
def pptx_to_pdf(self, file_path: str, output_path: str) -> str:
subprocess.run(['libreoffice', '--headless', '--convert-to', 'pdf', '--outdir', os.path.dirname(output_path), file_path], check=True)
- libreoffice --headlessコマンドを使用して、PowerPointファイルをPDFに変換します。これにより、画像ファイル(スライド)が保持されたままPDFが作成されます。
- libreofficeはLinux環境でも使えるため、Windows環境に依存せずにPowerPointのスライドをPDFに変換できます。
- Dockerで実行可能なので、Cloud Runなどのコンテナベースの環境で簡単にデプロイできます。