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

はじめに

Aspose.Slides for Python via .NET は、ファイルやストリームから PowerPoint と OpenDocument のプレゼンテーションを読み込むことができます。プレゼンテーションを読み込んだ後、その構造を検査したり、スライドを編集したり、リソースを管理したり、元の形式または他のサポートされている形式で保存したりできます。

読み込み動作は LoadOptions クラスでカスタマイズできます。たとえば、開くためのパスワードを指定したり、大きなバイナリオブジェクトをメモリ外に保持したり、埋め込みバイナリデータを省略したりできます。

プレゼンテーションを開く

既存のプレゼンテーションを開くには、ファイルパスを Presentation コンストラクタに渡します。with 文を使用すると、ファイルハンドル、テンポラリ データ、その他のリソースが速やかに解放されます。

以下の Python の例は、プレゼンテーションを開いてスライド数を取得する方法を示しています:

import aspose.slides as slides

with slides.Presentation("sample.pptx") as presentation:
    print("Slide count: " + str(len(presentation.slides)))

パスワード保護されたプレゼンテーションを開く

開く際のパスワードはプレゼンテーションの内容を暗号化します。完全なプレゼンテーションを読み込むには、正しいパスワードを LoadOptions.password に設定し、そのオプションを Presentation コンストラクタに渡します。パスワードがない、または間違っている場合は読み込みに失敗します。

import aspose.slides as slides

load_options = slides.LoadOptions()
load_options.password = "open_password"

with slides.Presentation("encrypted-presentation.pptx", load_options) as presentation:
    print("Slide count: " + str(len(presentation.slides)))

パスワードの検出、検証、暗号化ワークフローについては、Password-Protect Presentations を参照してください。暗号化されたプレゼンテーションが意図的に公開ドキュメントプロパティとともに保存された場合、パスワードなしでそれらのプロパティを読むことができます。詳細は Manage Presentation Properties をご覧ください。

大きなプレゼンテーションを開く

LoadOptions.blob_management_options は、画像、音声、動画などのバイナリ大規模オブジェクトの取り扱いを制御します。ソースファイルをロックしたままにしたり、一時ファイルを許可したり、メモリに保持する BLOB データ量を制限したりできます。

以下の Python コードは、大きなプレゼンテーション(例として 2 GB)を読み込む方法を示しています:

import aspose.slides as slides
file_path = "large-presentation.pptx"

load_options = slides.LoadOptions()
load_options.blob_management_options.presentation_locking_behavior = slides.PresentationLockingBehavior.KEEP_LOCKED
load_options.blob_management_options.is_temporary_files_allowed = True
load_options.blob_management_options.max_blobs_bytes_in_memory = 10 * 1024 * 1024

with slides.Presentation(file_path, load_options) as presentation:
    presentation.slides[0].name = "Large presentation"
    presentation.save("large-presentation-copy.pptx", slides.export.SaveFormat.PPTX)

埋め込みバイナリオブジェクトなしでプレゼンテーションを読み込む

プレゼンテーションには、アプリケーションが必要としない、または保持したくない埋め込みバイナリデータが含まれることがあります。例としては:

LoadOptions.delete_embedded_binary_objectsTrue に設定すると、読み込み時にこのバイナリデータが削除されます。サニタイズされた結果を保持するために、読み込んだプレゼンテーションを保存してください。

このオプションは不要な埋め込みペイロードへの曝露を減らしますが、完全なマルウェア検出やコンテンツサニタイズシステムではありません。

import aspose.slides as slides

load_options = slides.LoadOptions()
load_options.delete_embedded_binary_objects = True

with slides.Presentation("presentation-with-embedded-data.pptx", load_options) as presentation:
    presentation.save("presentation-without-embedded-data.pptx", slides.export.SaveFormat.PPTX)

よくある質問

ファイルが破損していて開けないことはどのように判断できますか?

Aspose.Slides は読み込み中にパース例外または形式例外をスローします。この失敗をパスワードが間違っているエラーとは別に処理し、アプリケーションが原因を正確に報告できるようにしてください。

必要なフォントが見つからない場合はどうなりますか?

プレゼンテーションは依然として読み込めますが、レンダリングやエクスポート時にフォントが置換されることがあります。出力をより予測可能にするために、フォント置換の構成 または カスタムフォントの提供 を行うことができます。

プレゼンテーションの読み込みは埋め込みメディアも読み込みますか?

埋め込みの音声や動画はプレゼンテーションオブジェクトモデルを通じて利用可能になります。外部リソースはデフォルトのリソース読み込み動作に従って解決され、場所にアクセスできない場合は利用できないことがあります。