pptx2md プログラム仕様

PowerPointファイルからテキスト、数式、図を抽出し、Markdown形式に変換するツール。

このスクリプトは、指定されたPowerPointプレゼンテーションファイル(.pptx)を解析し、 スライド内のテキスト、OMML(Office Math Markup Language)形式の数式、および画像を抽出し、 対応するMarkdownファイルに出力します。数式はLaTeX形式に変換されます。 抽出プロセスでは、スライドのタイトル、メインテキスト、OMML数式(LaTeX形式)、埋め込み画像が処理されます。 数式は複数行のLaTeX式を考慮し、個別のブロックとして出力されるよう設計されています。 画像は指定されたディレクトリに保存され、Markdown内に相対パスでリンクされます。

関連リンク:

pptx2md.py テクニカルドキュメント

converter.pptx2md.extract_content_to_markdown(input_pptx: str, output_md: str, image_dir: str, include_xml: bool = False) None[ソース]

PowerPointファイルからテキスト、数式、図を抽出し、Markdownファイルに保存します。

各スライドからタイトル、テキスト、数式、画像を抽出し、Markdown形式で整形します。 数式はLaTeX形式に変換され、必要に応じて $$ ... $$ ブロックに分割されます。 画像は指定されたディレクトリに保存され、Markdown内に相対パスでリンクされます。 include_xml がTrueの場合、数式の元のOMML XMLも出力されます。

パラメータ:
  • input_pptx (str) -- 入力PowerPointファイルへのパス。

  • output_md (str) -- 出力Markdownファイルへのパス。

  • image_dir (str) -- 画像ファイルを保存するディレクトリのパス。

  • include_xml (bool) -- 数式の元のOMML XMLを出力に含めるかどうかを示すフラグ。デフォルトは False

戻り値:

None

戻り値の型:

None

converter.pptx2md.get_slide_title(slide: Slide) str[ソース]

スライドからタイトルを抽出します。

スライドのタイトルプレースホルダーが存在する場合はそのテキストを優先します。 タイトルプレースホルダーがない場合は、スライド上の最初のテキストフレームの最初の行をタイトルとして使用します。 どちらも見つからない場合は「無題のスライド」を返します。

パラメータ:

slide (pptx.slide.Slide) -- タイトルを抽出するスライドオブジェクト。

戻り値:

抽出されたスライドのタイトル文字列。

戻り値の型:

str

converter.pptx2md.initialize()[ソース]

コマンドライン引数を解析し、プログラムの初期設定を行います。

必要な引数として入力PowerPointファイル名と出力Markdownファイル名を受け取ります。 数式の元のOMML XMLの出力、画像保存ディレクトリ、終了時のポーズ設定などのオプションも指定可能です。

戻り値:

解析されたコマンドライン引数を格納する argparse.Namespace オブジェクト。

戻り値の型:

argparse.Namespace

converter.pptx2md.main()[ソース]

スクリプトのメイン実行ロジックです。

コマンドライン引数を初期化・解析し、指定されたPowerPointファイルからコンテンツを抽出し、 Markdownファイルに変換して保存する主要な処理を呼び出します。 入力ファイルが見つからない場合はエラーメッセージを表示して終了します。

converter.pptx2md.omml_to_latex(element: _Element) str[ソース]

OMMLのXML要素を再帰的に解析し、対応するLaTeX形式の文字列に変換します。

様々なOMML構造(分数、根号、上付き/下付き、積分、n-ary演算子、デリミタなど)を処理し、 LaTeXの構文にマッピングします。m:t 要素内のUnicode数学記号も変換されます。 この関数は再帰的に子要素を処理し、複雑な数式構造全体をLaTeXに変換します。

パラメータ:

element (lxml.etree._Element) -- 変換対象のOMML XML要素。

戻り値:

変換されたLaTeX文字列。

戻り値の型:

str

converter.pptx2md.split_latex_blocks(s: str) List[str][ソース]

LaTeX文字列を \ (行区切り)で分割し、空の要素を除去します。

Pandocでのレンダリングを考慮し、複数行のLaTeX数式ブロックを個別のインラインブロックに分割するのに役立ちます。 例: "\frac{∂L}{∂x}=0 \\ \frac{∂L}{∂y}=0" は、["\frac{∂L}{∂x}=0", "\frac{∂L}{partial y}=0"] に分割されます。

パラメータ:

s (str) -- 分割対象のLaTeX文字列。

戻り値:

分割されたLaTeX文字列のリスト。空文字列の場合は空リストを返します。

戻り値の型:

list[str]

converter.pptx2md.terminate()[ソース]

プログラムの実行を終了します。

pause グローバル変数が1の場合、ユーザーにEnterキーの入力を求めてから終了します。