pptx_notes_word プログラム仕様

概要:

PowerPointのpptxファイルとノートファイル間のノートテキストを変換します。

詳細説明:

word2pptxモードでは、docxファイルやtxtファイル、mdファイルからスライドセクションを読み込み、 対応するPowerPointスライドのノートを上書きします。 pptx2wordモードでは、PowerPointスライドのすべてのノートを抽出し、 docxファイルやtxtファイル、mdファイルに保存します。 スライドのヘッダーは特定のパターンで認識され、スライド 3 や Slide 3 のような書式に対応します。 依存関係としてpython-pptxが必要で、docxファイルを扱う場合はpython-docxが必要です。

pptx_notes_word.build_parser() → ArgumentParser
概要:

コマンドライン引数のパーサーを構築します。

戻り値:
returns:

設定済みの引数パーサーオブジェクト。

rtype:

argparse.ArgumentParser

pptx_notes_word.compose_notes(manuscript: str, narration: str | None) → str
概要:

指定された区切り文字を使用して原稿とナレーションを結合します。

引数:
param manuscript:

原稿のテキスト。

type manuscript:

str

param narration:

ナレーションのテキスト。

type narration:

str | None

戻り値:
returns:

結合されたノートテキスト。

rtype:

str

pptx_notes_word.duplicate_slide(prs: Presentation, source_slide)
概要:

指定されたスライドのコピーを追加し、新しいスライドを返します。

詳細説明:

python-pptxにはスライドをコピーする公開APIがないため、 図形と外部関係を同じレイアウトの新しいスライドにコピーします。

引数:
param prs:

プレゼンテーションオブジェクト。

type prs:

pptx.presentation.Presentation

param source_slide:

コピー元のスライド。

type source_slide:

pptx.slide.Slide

戻り値:
returns:

コピーして作成された新しいスライドオブジェクト。

rtype:

pptx.slide.Slide

pptx_notes_word.get_slide_notes(slide) → str
概要:

ノートスライドを作成せずに1つのスライドのノートテキストを返します。

引数:
param slide:

読み込み対象のスライドオブジェクト。

type slide:

pptx.slide.Slide

戻り値:
returns:

ノートのテキスト文字列。

rtype:

str

pptx_notes_word.main() → int
概要:

コマンドラインからの実行を処理するメイン関数です。

戻り値:
returns:

終了ステータスコード。

rtype:

int

pptx_notes_word.move_slide_after(prs: Presentation, slide, after_slide) → None
概要:

スライドをプレゼンテーション内の別のスライドの直後に移動します。

引数:
param prs:

プレゼンテーションオブジェクト。

type prs:

pptx.presentation.Presentation

param slide:

移動するスライドオブジェクト。

type slide:

pptx.slide.Slide

param after_slide:

このスライドの直後に移動します。

type after_slide:

pptx.slide.Slide

戻り値:
returns:

なし。

rtype:

None

例外:
raises RuntimeError:

スライドの順序を特定できなかった場合。

pptx_notes_word.nonempty_lines(text: str) → list[str]
概要:

空行を無視してテキストを行のリストに分割します。

引数:
param text:

分割対象のテキスト。

type text:

str

戻り値:
returns:

空でない行のリスト。

rtype:

list[str]

pptx_notes_word.notes_to_pptx(pptx_path: Path, manuscript_path: Path, narration_path: Path | None, output_path: Path | None, split_lines: bool) → int
概要:

原稿とナレーションのノートを読み込み、pptxファイルのノートに反映させます。

引数:
param pptx_path:

対象のpptxファイルのパス。

type pptx_path:

pathlib.Path

param manuscript_path:

原稿ファイルのパス。

type manuscript_path:

pathlib.Path

param narration_path:

ナレーションファイルのパス、またはNone。

type narration_path:

pathlib.Path | None

param output_path:

出力するpptxファイルのパス、またはNone。

type output_path:

pathlib.Path | None

param split_lines:

行ごとにスライドを分割するかどうかのフラグ。

type split_lines:

bool

戻り値:
returns:

終了ステータスコード。

rtype:

int

pptx_notes_word.pptx_to_notes(pptx_path: Path, notes_path: Path) → int
概要:

pptxファイルからノートを抽出し、docxやtxt、mdファイルにエクスポートします。

引数:
param pptx_path:

入力元のpptxファイルのパス。

type pptx_path:

pathlib.Path

param notes_path:

出力先のノートファイルのパス。

type notes_path:

pathlib.Path

戻り値:
returns:

終了ステータスコード。

rtype:

int

例外:
raises RuntimeError:

docx出力でpython-docxがない場合。

raises ValueError:

サポートされていないファイルの拡張子の場合。

pptx_notes_word.read_notes_sections(notes_path: Path) → dict[int, str]
概要:

docxやtxt、mdファイルからスライド番号ごとのノートセクションを読み込みます。

引数:
param notes_path:

読み込むノートファイルのパス。

type notes_path:

pathlib.Path

戻り値:
returns:

スライド番号をキー、ノートテキストを値とする辞書。

rtype:

dict[int, str]

例外:
raises RuntimeError:

python-docxパッケージがインストールされていない場合。

raises ValueError:

サポートされていないファイルの拡張子の場合。

pptx_notes_word.set_slide_notes(slide, text: str) → bool
概要:

1つのスライドのノートテキストを上書きします。

詳細説明:

ノートのプレースホルダーが利用できない場合のみFalseを返します。

引数:
param slide:

書き込み対象のスライドオブジェクト。

type slide:

pptx.slide.Slide

param text:

上書きするテキスト。

type text:

str

戻り値:
returns:

成功した場合はTrue、プレースホルダーがない場合はFalse。

rtype:

bool

pptx_notes_word.warning(message: str) → None
概要:

警告メッセージを標準エラー出力に出力します。

引数:
param message:

警告として出力するメッセージテキスト。

type message:

str

戻り値:
returns:

なし。

rtype:

None