add_notes_pptx プログラム仕様
PowerPointノート処理スクリプト
このスクリプトは、PowerPointファイル(.pptx)に対して以下の2つの主要なモードで動作します。 1. addモード: 各スライドのノートを読み込み、指定されたスタイルと位置で半透明の字幕テキストボックスとしてスライドに追加します。 2. replaceモード: スライド内の {{key}} 形式のプレースホルダーを、指定されたTOML風ファイルと各スライドのノート内容で置換します。
このモードでは、既存のテキスト書式やアニメーションを保持しながらテキストを部分置換します。
PowerPointノート処理ツール add_notes_pptx.py
- ai.add_notes_pptx.add_subtitles_with_transparency(args)[ソース]
PowerPointスライドのノートを字幕テキストボックスとして追加する。
各スライドのノート内容を読み込み、指定されたスタイルと位置で半透明の テキストボックスをスライド下部に追加する。字幕ボックスの見た目(余白、高さ、 フォント、色、背景色、透明度)はコマンドライン引数で設定可能。
- パラメータ:
args -- argparse.Namespace: コマンドライン引数オブジェクト。
- 戻り値:
int: 処理が成功した場合は0。ファイル保存エラーが発生した場合も0を返す。
- ai.add_notes_pptx.clean_text(text)[ソース]
テキストから余分な空白行を削除し、整形する。
PowerPointのノートテキストに含まれる可能性のある余分な改行や、 空白文字のみの行を除去し、整形されたテキストを返す。
- パラメータ:
text -- str: 整形する対象のテキスト。
- 戻り値:
str: 空白行が除去され整形されたテキスト。
- ai.add_notes_pptx.get_notes_text(slide)[ソース]
スライドのノート本文(Placeholder Body)を返す。無ければ空文字。
指定されたPowerPointスライドのノートページにあるプレースホルダー (通常は2番目のBodyプレースホルダー)からテキストを抽出する。 ノートが存在しない場合は空文字列を返す。
- パラメータ:
slide -- win32com.client.Dispatch: ノートを取得する対象のスライドオブジェクト。
- 戻り値:
str: ノート本文のテキスト。ノートが存在しない場合は空文字列。
- ai.add_notes_pptx.parse_args()[ソース]
コマンドライン引数を解析する。
`argparse`モジュールを使用して、入力ファイル、出力ファイル、モード、 および各モードに固有の設定(字幕の見た目、置換ファイルパスなど)を定義し、解析する。 出力ファイル名が指定されていない場合は、入力ファイル名に基づいて自動生成される。
- 戻り値:
argparse.Namespace: 解析された引数を格納したオブジェクト。
- ai.add_notes_pptx.parse_toml_style(filepath)[ソース]
とても寛容な key=value 形式を読み込む。
指定されたファイルパスからTOML風のkey=value形式の設定を読み込み、辞書として返す。 - 行頭/行末の空白を許容する。 - #`で始まる行をコメントとして無視する。 - 値の両端の `' または " を剥がして扱う。 ファイルが存在しない場合は警告を表示し、空辞書を返す。
- パラメータ:
filepath -- str: 読み込むTOML風設定ファイルのパス。
- 戻り値:
dict: 解析されたキーと値のペアを含む辞書。ファイルが見つからない、またはパスが指定されない場合は空辞書。
- ai.add_notes_pptx.replace_placeholders_on_slide(slide, base_map)[ソース]
指定されたスライド内の`{{key}}`プレースホルダーを置換マップに基づいて置き換える。
スライドのノート内容を`supertitle`キーとして`base_map`に追加し、 スライド内のすべてのテキスト(通常のシェイプ、グループ、表セル)を走査して `{{key}}`形式のプレースホルダーを対応する値で置換する。 ノートの`supertitle`はファイル側の指定よりも優先される。
- パラメータ:
slide -- win32com.client.Dispatch: 置換処理を行う対象のスライドオブジェクト。
base_map -- dict: 基本となる置換キーと値のマップ。
- 戻り値:
int: スライド内で置換されたプレースホルダーの総数。
- ai.add_notes_pptx.replace_placeholders_with_file(args)[ソース]
PowerPointファイル内の`{{key}}`プレースホルダーを指定されたファイルとノート内容で置換する。
`--replace`オプションで指定されたTOML風ファイルから置換マップを読み込み、 各スライドのノート内容を`supertitle`キーとしてマップに追加する。 その後、各スライドを走査し、スライド内のすべてのテキストボックス、グループ、 表セル内で`{{key}}`形式のプレースホルダーを置換する。
- パラメータ:
args -- argparse.Namespace: コマンドライン引数オブジェクト。
- 戻り値:
int: 処理が成功した場合は0。ファイル保存エラーが発生した場合も0を返す。