デジタル署名は、デジタル文書を保護するためのよく知られた一般的に使用される方法です。これにより、ドキュメント内のコンテンツの信頼性を簡単に検証できます。したがって、誰かがドキュメントを改ざんしようとしたかどうかを識別できます。 MS PowerPointでは、PPTまたはPPTXプレゼンテーションにデジタル署名を使用して署名することもできます。この機能をプログラムで自動化するために、この記事では、PythonでPowerPointPPTファイルにデジタル署名を追加する方法について説明します。

PowerPointPPTにデジタル署名するPythonライブラリ

PowerPointプレゼンテーションにデジタル署名を追加するには、Aspose.Slides for Python via .NETを使用します。これは、複雑なコードを記述せずにPowerPointプレゼンテーションを作成および操作できる強力なPythonライブラリです。次のpipコマンドを使用して、PyPIからライブラリをインストールできます。

> pip install aspose.slides 

PythonでPPTにデジタル署名を追加する

デジタル署名を使用してドキュメントに署名するには、最初に、認証局と呼ばれる認定された組織/個人から証明書を取得する必要があります。この証明書は、それを所有する人を一意に識別するために使用されます。

デジタル証明書を取得したら、以下の手順に従って、PythonのPowerPointPPTにデジタル署名を追加できます。

  • まず、Presentationクラスを使用してPPT/PPTXを開きます。
  • 次に、ファイルのパスとパスワードを指定して、DigitalSignatureクラスを使用してデジタル署名をロードします。
  • DigitalSignature.commentsプロパティを使用してコメントを追加します。
  • Presentation.digital \ signatures.add(DigitalSignature)メソッドを使用して、プレゼンテーションにデジタル署名を追加します。
  • 最後に、Presentation.save(string, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

次のコードサンプルは、PythonでPowerPointPPTにデジタル署名を追加する方法を示しています。

import aspose.slides as slides

# Load presentation
with slides.Presentation("presentation.pptx") as pres:
    # Create DigitalSignature object with PFX file and PFX password 
    signature = slides.DigitalSignature("certificate.pfx", "password")

    # Comment new digital signature
    signature.comments = "Signing with Aspose.Slides"

    # Add digital signature to presentation
    pres.digital_signatures.add(signature)

    # Save presentation
    pres.save("SignedPPT.pptx", slides.export.SaveFormat.PPTX)

Pythonでデジタル署名されたPPTを確認する

Aspose.Slidesを使用すると、デジタル署名されたPPTが変更されているかどうかを確認することもできます。以下は、PythonのPowerPointプレゼンテーションでデジタル署名を検証する手順です。

  • まず、Presentationクラスを使用してPPT/PPTXを開きます。
  • 次に、PPTがデジタル署名されているかどうかを確認します。
  • Presentation.digital \ signaturesコレクションのデジタル署名ごとに、次の手順を実行します。
    • DigitalSignature.is \ validを使用して、署名を検証します。
    • falseを返す場合、プレゼンテーションは変更されます。それ以外の場合は変更されません。

次のコードサンプルは、PythonのPowerPointPPTでデジタル署名を検証する方法を示しています。

import aspose.slides as slides

# Load presentation
with slides.Presentation("presentation.pptx") as pres:
    if len(pres.digital_signatures) > 0:
        allSignaturesAreValid = True
        print("Signatures used to sign the presentation: ")

        # Check if all digital signatures are valid
        for signature in pres.digital_signatures :
            print(signature.certificate.subject_name.name + ", "
                    + signature.sign_time.strftime("yyyy-MM-dd HH:mm") + " -- " + "VALID" if signature.is_valid else "INVALID")
            allSignaturesAreValid = allSignaturesAreValid and signature.is_valid

        if allSignaturesAreValid:
            print("Presentation is original, all signatures are valid.")
        else:
            print("Presentation has been modified.")

無料ライセンスを取得する

無料の一時ライセンスを取得して、評価の制限なしに.NET経由でAspose.Slides for Pythonを使用できます。

結論

この記事では、PythonでPowerPointPPTまたはPPTXファイルにデジタル署名を追加する方法を学習しました。さらに、デジタル署名を検証して、プレゼンテーションが変更されているかどうかを確認する方法を見てきました。 ドキュメントを使用して、Python用のAspose.Slidesの他の機能を調べることができます。また、フォーラムで質問することもできます。

関連項目