3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NotebookLMのPDFを編集可能なパワポにしたくて、Gemini APIで自作ツールを作った話

Last updated at Posted at 2025-12-31

最近、Googleの NotebookLM を活用していますが、
「出力がPDFなどで、PowerPoint形式に対応していない」 ことが難点でした。

社内の報告資料や、ちょっとしたプレゼンに使いたい時、PDFのままだと扱いづらいことがあります。「ここのテキストをちょっと直したい」「レイアウトを調整したい」と思っても、PDFだとなかなか手軽にはいきません。
NotebookLMさんは漢字が正しく出力されないという問題もありますよね。

既存ツールの壁

「PDF to PPTX」で検索すれば、たくさんの変換ツールが出てきます。しかし、実際に試してみると…

  • 有料(サブスクリプション必須だったり、回数制限があったり)
  • レイアウトが崩れる
  • テキストが細切れになる(1行が複数のテキストボックスに分割されて編集しにくい)
  • 画像化されていて編集できない
  • よくあるOCRではそのまま文字ボックスが重なって配置される。
  • 後から背景色に合わせてマスクしたくても色をピックするのが手間。

あちこちのツールを試して回るのも面倒になってきました。

「探すのも面倒だし、自分で作った(AIさんに作らせた)方が早いのでは?」

というわけで、勢いでAIに課金しました。今さらですが、変換ツール作成です。

作ったもの

PDFや画像(JPG/PNG)を、レイアウトを保持したまま編集可能なPowerPoint (.pptx) に変換するツール です。

レイアウト解析には Google Gemini API (Gemini 3.0 Flash) を使用しています。
従来のOCRとは異なり、AIが「これはテキストブロック」「これは図表」と意味的なまとまりで認識してくれるため、PPTX上で編集しやすい形 で出力されるのが特徴です。

主な機能

  • 対応フォーマット: PDF, JPG, PNG
  • 編集可能なテキスト: 文字部分はテキストボックスとして生成されるので、パワポ上で普通に編集できます。
  • 画像の保持: 図表や写真はそのまま画像として配置されます。
  • 文字領域は、その背景色をピックして自動でマスク。その上に文字を配置します。

AIの精度的に多少のズレや、文字サイズの大小は発生するので、そこは修正必要ですが色々な手間は大幅に削減されると思います。

実際の動作

論より証拠ということで、変換の様子です。

入力したサンプル画像 (JPG)

pdf2pptx_image.jpg

変換結果 (PowerPoint)

image.png

AIがレイアウトを認識しているので、人間が見たままに近い形でスライド化されています。

技術スタック

  • 言語: Python
  • AIモデル: Google Gemini API (Gemini 3.0 Flash / Pro)
  • PDF処理: PyMuPDF (fitz)
  • PPTX生成: python-pptx
  • GUI: tkinter (TkinterDnD2)

GitHubリポジトリ

ソースコードはGitHubで公開しています。
もし同じ悩みをお持ちの方がいればどうぞ。

GitHub - PDF2PPTX Converter

おわりに

NotebookLMで生成したサマリーをこのツールに放り込めば、あっという間に編集可能なスライドのたたき台が完成します。
「とりあえず動けばいい」精神で作ったツールです

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?