授權

概述

Aspose.Slides 可在評估模式或使用有效授權的情況下使用。評估版本提供與授權版本相同的功能,但會在每個保存的簡報的每張投影片上加入評估水印,並截斷程式從簡報中讀取的文字。

本文說明 Aspose.Slides 的授權運作方式,以及如何在使用函式庫之前套用授權。授權可以透過 License 類別從檔案或串流載入。本文同時示範如何驗證授權是否正確套用。

評估 Aspose.Slides

評估版限制

  • 評估版(未指定授權)提供完整產品功能,但會在每個保存的簡報的每張投影片上加入評估水印文字框。
  • 程式從簡報讀取的文字會被截斷為前幾個字符,並附加評估限制說明。程式寫入的文字則會完整保存。

Aspose.Slides 授權

  • 評估版在您購買授權並透過幾行程式碼套用後,即會變為授權版。
  • 授權是一個純文字 XML 檔,其中包含產品名稱、授權開發人員數量、訂閱到期日等資訊。
  • 授權檔已經數位簽章,不能被修改。即使是意外的換行也會使檔案失效。
  • 當您僅傳遞檔名而未指定資料夾時,Aspose.Slides for C++ 只會在目前工作目錄中尋找授權檔。它不會搜尋執行檔或 Aspose.Slides 函式庫的資料夾;若授權檔存放於其他位置,請傳遞完整路徑。
  • 為避免評估版的限制,必須在使用 Aspose.Slides 之前設定授權。授權只需在每個應用程式或行程中設定一次。

套用授權

授權可以從 檔案 或 串流 載入。

檔案

設定授權最簡單的方式是將授權檔放在程式的工作目錄,僅指定檔名(不含路徑)。若檔案不在工作目錄,請使用完整路徑。

以下 C++ 程式碼從工作目錄中的 Aspose.Slides.lic 檔案套用授權:

#include <Util/License.h>
#include <system/smart_ptr.h>
#include <system/string.h>

using namespace Aspose::Slides;
using namespace System;

int main()
{
    auto license = MakeObject<License>();
    license->SetLicense(u"Aspose.Slides.lic");

    return 0;
}

如果授權有效,License::SetLicense 會返回且程式不會有任何輸出;此後 Aspose.Slides 將不受評估限制。若檔案不在工作目錄,該方法會拋出 FileNotFoundException ,訊息為 License “Aspose.Slides.lic” doesn’t exist or access is restricted。此範例未處理例外,因此程式會停止。

串流

當程式不以可命名的檔案形式保存授權(例如從資料庫讀取授權)時,可從串流載入授權。License::SetLicense 接受任何包含授權的 Stream。為讓範例保持簡潔,以下 C++ 程式碼使用 File::OpenRead 開啟工作目錄中的 Aspose.Slides.lic,並從該串流套用授權:

#include <Util/License.h>
#include <system/io/file.h>
#include <system/smart_ptr.h>

using namespace Aspose::Slides;
using namespace System;
using namespace System::IO;

int main()
{
    auto license = MakeObject<License>();
    auto stream = File::OpenRead(u"Aspose.Slides.lic");
    license->SetLicense(stream);

    return 0;
}

有效的授權會產生與檔案範例相同的結果。若檔案不存在,File::OpenRead 會在授權套用前拋出 FileNotFoundException,程式會停止。

驗證授權

要檢查授權是否正確設定,呼叫 License::IsLicensed。只有在成功套用有效授權後才會回傳 true,否則回傳 false。以下 C++ 程式碼從工作目錄套用授權檔,然後檢查結果:

#include <Util/License.h>
#include <system/console.h>
#include <system/smart_ptr.h>

using namespace Aspose::Slides;
using namespace System;

int main()
{
    auto license = MakeObject<License>();
    license->SetLicense(u"Aspose.Slides.lic");

    if (license->IsLicensed())
    {
        Console::WriteLine(u"License is good!");
    }

    return 0;
}

若授權有效,程式會印出 License is good!。若檔案遺失或不是授權檔,License::SetLicense 會在檢查前拋出例外,程式會在未印出任何內容的情況下停止。若檔案為授權檔但簽章不符(例如被編輯),SetLicense 會在不發生錯誤的情況下返回,但 IsLicensed 會回傳 false,因此不會印出任何訊息,Aspose.Slides 仍處於評估模式。

執行緒安全性

常見問答

我可以在完全離線的環境(無網路連線)套用授權嗎?

可以。授權驗證完全在本機使用授權檔進行,無需網路連線。

一年訂閱到期後會發生什麼事?函式庫會停止運作嗎?

不會。授權為永久授權:您可繼續使用訂閱結束日前發布的版本,只是若未續約則無法使用更新的版本。