はじめに

Aspose.Slides FOSS for Python は現在 PyPI で利用可能です: Microsoft Office や任意のプロプライエタリランタイムに依存せず、Python だけで PowerPoint .pptx ファイルを作成、読み取り、編集できる、無料の MIT ライセンスライブラリです。

このライブラリは、プログラムでプレゼンテーションファイルを生成または操作する必要がある開発者向けに設計されています:データからスライドデッキを自動化したり、アップロードされた PPTX ファイルからテキストやメタデータを抽出したり、プレゼンテーションベースのレポートパイプラインを構築したり、またはウェブアプリケーションにプレゼンテーション作成機能を組み込んだりするためです。aspose-slides-foss は純粋な Python で、依存関係は lxml のみであるため、Windows、macOS、Linux、Docker コンテナ上で同一にデプロイできます。

主な機能

  • フルラウンドトリップ PPTX サポート: 任意の .pptx ファイルを開き、内容を変更し、ライブラリがまだ理解できない未知の XML パーツを失うことなく再保存できます。
  • スライド管理: prs.slides を使用してスライドを追加、削除、反復処理します。プレゼンテーションは slides.Presentation() 後に空白のスライドが 1 枚で開始します。
  • AutoShapes、テーブル、コネクタ: slide.shapes.add_auto_shape() でシェイプを挿入し、slide.shapes.add_table() で表形式データを、slide.shapes.add_connector() でシェイプ間の視覚的コネクタを挿入します。
  • リッチテキスト書式設定: PortionFormat を使用して文字レベルでテキストをフォーマットします。フォントサイズ、太字、斜体、下線、ARGB カラーは FillType.SOLIDColor.from_argb() で指定します。
  • 塗りつぶしタイプ: 任意のシェイプに FillType.SOLIDGRADIENTPATTERN、または PICTURE の塗りつぶしを適用します。
  • ビジュアルエフェクト: 外部シャドウ、グロー、ソフトエッジ、ぼかし、反射、内部シャドウは shape.effect_format を使用します。
  • 3D 書式設定: ベベル、カメラ、ライトリグ、マテリアル、押し出し深さは shape.three_d_format で設定します。
  • スピーカーノート: 各スライドにノートテキストを notes_slide_manager.add_notes_slide() で添付します。
  • スレッド化コメント: 作成者メタデータとスライド位置を含むコメントを追加します。
  • 埋め込み画像: ファイルパス、バイト配列、または io.BytesIO ストリームから埋め込みます。
  • ドキュメントプロパティ: コア、アプリ、カスタムプロパティの読み書きが可能です。

はじめに

PyPI からインストールします。Python 3.10 以降が必要です; lxml は自動的にインストールされます。

pip install aspose-slides-foss

シェイプを使用して最初のプレゼンテーションを作成し、保存します:

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
from aspose.slides_foss import ShapeType

with slides.Presentation() as prs:
    slide = prs.slides[0]
    shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 400, 120)
    shape.add_text_frame("Hello from Aspose.Slides FOSS!")
    prs.save("hello.pptx", SaveFormat.PPTX)

Presentation は常に with ブロック内で使用してください;これにより、ブロックが終了するとすべての内部リソースが解放されます。

テキスト書式設定例

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType, NullableBool, FillType
from aspose.slides_foss.drawing import Color
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    shape = prs.slides[0].shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 500, 150)
    tf = shape.add_text_frame("Bold heading in corporate blue")
    fmt = tf.paragraphs[0].portions[0].portion_format
    fmt.font_height = 28
    fmt.font_bold = NullableBool.TRUE
    fmt.fill_format.fill_type = FillType.SOLID
    fmt.fill_format.solid_fill_color.color = Color.from_argb(255, 0, 70, 127)
    prs.save("formatted.pptx", SaveFormat.PPTX)

現在の制限

このリリースでは、次の領域でNotImplementedErrorが発生します。

  • チャート、SmartArt、OLE オブジェクト
  • アニメーションとスライド トランジション
  • PDF、HTML、SVG、または画像形式へのエクスポート
  • ハイパーリンク、アクション設定、VBA マクロ、デジタル署名

ロード時に遭遇した未知のXMLパーツは、保存時にそのまま保持されるため、他のツールで生成されたPPTXファイルは安全に往復できます。

参照