知識ベース

Python PPTX | PowerPoint プレゼンテーションの操作方法

PowerPoint および OpenOffice のプレゼンテーションを、外部ソフトウェアを使用せずに Python で作成、読み取り、カスタマイズ、結合、クローン、変換したい場合は、こちらで解決できます。

Aspose.Slides for Python via .NET は、プレゼンテーション操作用のクラスライブラリで、ゼロからのプレゼンテーション作成、変換、テキスト・図形・テーブル・アニメーションの管理、スライドのプレビュー、スライドの PDF、TIFF、XPS、HTML へのエクスポートなど、豊富な機能を提供します。Aspose.Slides for Python via .NET には、API の理解を深めるためのデモや実用サンプルが用意されています。

API が提供する主な機能:

• テンプレートからのスライド作成またはクローン作成
• PowerPoint テーブルの操作
• 図形への保護設定の追加・削除
• MS Excel グラフを OleObject として追加
• データベースからのプレゼンテーション生成
• プレゼンテーションの保護
• グラフの作成と変更
• プレゼンテーションの PDF、XPS、HTML、JPEG、PNG、SVG などへのエクスポート

対応ファイル形式:

Aspose.Slides for Python via .NET は、以下の形式の読み込みと保存が可能です: PPT、POT、PPS、PPTX、POTX、PPSX、PPTM、PPSM、POTM、ODP、OTP。さらに、TIFF、EMF、PDF、XPS、JPEG、PNG、GIFF、BMP、SVG、SWF、HTML、XAML などにも保存できます。

以下では、プレゼンテーションの作成、開く、結合、保存の手順とコード例を紹介します。

Python PPTX | PowerPoint プレゼンテーションの操作方法

Python で PowerPoint (PPTX) プレゼンテーションを作成する方法

Aspose.Slides for Python via .NET を使用してスライド内に新しい線を追加する手順は次のとおりです。

  1. Presentation クラスのインスタンスを作成
  2. インデックスでスライド参照を取得
  3. shapes オブジェクトの add_auto_shape メソッドで LINE タイプの AutoShape を追加
  4. プレゼンテーションを PPTX ファイルとして保存

上記手順で、プレゼンテーションの最初のスライドに線を追加しました:

import aspose.slides as slides  

# プレゼンテーション ファイルを表す Presentation オブジェクトをインスタンス化
with slides.Presentation() as presentation:
    slide = presentation.slides[0]
    slide.shapes.add_auto_shape(slides.ShapeType.LINE, 50, 150, 300, 0)
    presentation.save("NewPresentation_out.pptx", slides.export.SaveFormat.PPTX)

Python でプレゼンテーションを開く方法

Aspose.Slides for Python via .NET を使用すると、既存の PowerPoint プレゼンテーションにアクセスしたり変更したりできます。

API は Presentation クラスを提供しており、既存のプレゼンテーションを開くためのコンストラクタを使用してオブジェクトを作成できます。以下の例では、プレゼンテーションを開き、スライド総数をコンソールに出力します。

import aspose.slides as slides

# ファイルパスをコンストラクタに渡してプレゼンテーションを開く
with slides.Presentation("pres.pptx") as pres:
    # プレゼンテーション内のスライド総数を出力
    print(pres.slides.length)

プレゼンテーションが非常に大きい(例: 3 GB)場合は、以下のサンプルコードで低メモリ消費で開くことができます。

import aspose.slides as slides
import os

loadOptions = slides.LoadOptions()
loadOptions.blob_management_options = slides.BlobManagementOptions()
loadOptions.blob_management_options.presentation_locking_behavior = slides.PresentationLockingBehavior.KEEP_LOCKED

with slides.Presentation("pres.pptx", loadOptions) as pres:
    # 大容量プレゼンテーションがロードされ、メモリ使用量は低いままです。

    # 任意の変更を加える
    pres.slides[0].name = "Very large presentation"

    # 別ファイルに保存。保存中もメモリ消費は低いままです。
    pres.save("veryLargePresentation-copy.pptx", slides.export.SaveFormat.PPTX)

    # ここでファイルを削除しようとするとロック中のため例外が発生します
    os.remove("pres.pptx")

# ここならロックが解除されているので削除可能
os.remove("pres.pptx")

*大容量画像・動画・音声などを含むプレゼンテーションを作成する場合は、Blob facility を利用してメモリ消費を抑えてください。

Python で PowerPoint プレゼンテーションを結合する方法

Aspose.Slides for Python via .NET は、さまざまな方法でプレゼンテーションを結合できます。スライドの形状、書式、テキスト、スタイル、コメントなどを失うことなく結合でき、同一形式(PPTX→PPTX、PPT→PPT など)または異なる形式(PPTX→PPT、PPTX→ODP など)でも対応可能です。

結合には、add_clone メソッド(ISlideCollection インターフェイス)を使用します。Presentation オブジェクトのスライドコレクションから add_clone を呼び出すことで、スライドを統合できます。

プレゼンテーションの結合

AddClone (ISlide) メソッドを使用すれば、スライドの外観やスタイルを失うことなく結合できます(デフォルト パラメータ)。以下のコードは、2 つのプレゼンテーションを結合する例です。

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres1:
    with slides.Presentation("Presentation1.pptx") as pres2:
        for slide in pres2.slides:
            pres1.slides.add_clone(slide)
        pres1.save("combined.pptx", slides.export.SaveFormat.PPTX)

結合時にスライドのスタイルを変更
結合しながらスライドのマスタやレイアウトを変更したい場合は、add_clone (ISlide, IMasterSlide, Boolean) メソッドを使用します。

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres1:
    with slides.Presentation("Presentation1.pptx") as pres2:
        for slide in pres2.slides:
            pres1.slides.add_clone(slide, pres1.masters[0], allow_clone_missing_layout=True)
        pres1.save("combined_with_master.pptx", slides.export.SaveFormat.PPTX)

特定のスライドだけを結合
以下のコードでは、異なるプレゼンテーションから選択したスライドだけを組み合わせて単一の出力プレゼンテーションを作成します。

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres1:
    with slides.Presentation("Presentation1.pptx") as pres2:
        for slide in pres2.slides:
            pres1.slides.add_clone(slide, pres1.layout_slides[0])
        pres1.save("combined_with_layout.pptx", slides.export.SaveFormat.PPTX)

他にもさまざまな結合方法があり、詳細はドキュメントの Merge Presentation セクションをご覧ください。

Python で PowerPoint プレゼンテーションを保存する方法

Aspose.Slides for Python via .NET を使用すると、プレゼンテーションをファイルまたはストリームとして保存できます。以下に両方の方法のサンプルコードを示します。

ファイルとして保存
Presentation クラスの save メソッドを呼び出すだけで、プレゼンテーションをファイルに保存できます。

import aspose.slides as slides

# PPT ファイルを表す Presentation オブジェクトをインスタンス化
with slides.Presentation() as presentation:
    
    # ...ここで作業を行う...

    # プレゼンテーションをファイルに保存
    presentation.save("Saved_out.pptx", slides.export.SaveFormat.PPTX)

ストリームに保存
ストリームに保存する場合は、Presentation クラスの save メソッドに出力ストリームを渡します。以下の例では、新しいプレゼンテーションを作成し、シェイプにテキストを追加した後、ストリームに保存しています。

import aspose.slides as slides

# PPT ファイルを表す Presentation オブジェクトをインスタンス化
with slides.Presentation() as presentation:
    
    shape = presentation.slides[0].shapes.add_auto_shape(
        slides.ShapeType.RECTANGLE, 200, 200, 200, 200)

    # ストリームに保存
    with open("Save_As_Stream_out.pptx", "bw") as stream:
        presentation.save(stream, slides.export.SaveFormat.PPTX)

ドキュメントでは、事前定義されたビュー タイプでの保存Strict Open XML スプレッドシート形式での保存進捗率での保存 についても解説しています。

Aspose.Slides for Python via .NET は Python 3.5〜3.9 に対応しており、Linux 上で Python コードを実行する場合は、Linux 用の追加要件 を確認してください。

有料コンサルティング

プロジェクトでサポートが必要な場合は、専門家チーム がプロジェクトの設計・実装を支援します。ビジネスに集中できるよう、面倒な作業は私たちが代行します。