PowerPoint

PowerPoint のスライドは DrawingML でできている。図形やテキストの run、表が、レイアウトとマスターから継承した位置や書式のもとに配置されるので、スライドごとの見た目は 1 枚のビットマップ画像ではない。BDF はこの DrawingML を直接読む。Office の PDF 書き出しを経由しないので、マスターとレイアウトの共有、段落や箇条書きの構造が BDF ファイルにそのまま残る。

試す

ファイルをビューアにドロップするか、サンプルを試せる: PowerPoint のデッキ、数式のスライド。

PowerPoint(.pptx)

converter/pptx は OPC の zip パッケージ(.pptx、.pptm、.ppsx、.ppsm、.potx、.potm)を読み、DrawingML を BDF の描画命令に直接落とす。XML は型付きの構造体ではなく汎用の要素木として読む。DrawingML には省略可能な要素と多段の継承が多いためだ。OPC パッケージと要素木の読み込み(converter/internal/ooxml)は Excel・Word・Visio の変換器と共有し、DrawingML の描画そのもの(converter/internal/ooxml/drawingml)は Excel の図形やグラフとも共有する。

読み込むもの:

レイアウト: スライドの順に 1 スライド 1 ページになる。非表示のスライドは既定で除く(指定すれば含める)。タイトルは見出しに、箇条書きのレベルは入れ子のリストに、表と図形・画像・グラフは代替テキスト付きの表と図として読み上げ用のテキスト層に載る。テンプレートの既定の言語タグのままでは誤読されるところは、文字種から言語を推定して直す。

オプション(-param。bdf generate -h の内容):

オプション 値 既定
-param hidden= true 非表示スライドを除く

-hidden は -param hidden=true の短縮形(Excel の -hidden も非表示シートに同じことをする)。-pages で変換するスライドを選べ、フォント関連の一般オプション -font-dir、-fonts system、-no-subset、-no-woff2、-no-system-fonts、-ignore-fstype は Word・Excel と同じように PowerPoint にも効く。

詳細は design.md §3.4 を参照。

テンプレートとして穴埋めする

図形や表の文字に {{名前}} のタグを書いたプレゼンテーションは、帳票のテンプレートとしてデータで穴埋めできる(bdf fill、pptx.Fill)。スライドが固定のページになり、値を入れた文字の収まりは PowerPoint の自動調整の規則で決め直し、行が増えて収まらなくなった表は複製したスライドに続く。書き方は帳票を作るを参照。

数式

PowerPoint の「挿入 → 数式」で入れた数式は、段落の中の Office Math(a14:m の中の m:oMath)として保存されています。同じファイルが持つフォールバックの画像ではなく、この Office Math から組むので、拡大しても輪郭がぼけず、検索とコピーでは線形表記のテキストになります。

<a14:m>
  <m:oMath>
    <m:sSup><m:e><m:r><m:t>e</m:t></m:r></m:e><m:sup><m:r><m:t>iπ</m:t></m:r></m:sup></m:sSup>
    <m:r><m:t>+1=0</m:t></m:r>
  </m:oMath>
</a14:m>

サンプルは converter/pptx/testdata/math.pptx です。組み方は Word・HTML・Markdown の数式と同じです。