ترخيص Aspose PDF

قيود النسخة التجريبية

نريد من عملائنا اختبار مكوناتنا بدقة قبل الشراء، لذا تسمح لك النسخة التجريبية باستخدامها كما تفعل عادةً.

  • PDF تم إنشاؤه مع علامة مائية تجريبية. توفر النسخة التجريبية من Aspose.PDF for .NET وظائف المنتج بالكامل، ولكن جميع الصفحات في مستندات PDF المولدة تحمل علامة مائية بالنص “تجريبي فقط. تم إنشاؤه باستخدام Aspose.PDF. حقوق الطبع والنشر 2002-2025 Aspose Pty Ltd.” في الأعلى.

  • تحديد عدد الصفحات التي يمكن معالجتها. في النسخة التجريبية، يمكنك معالجة الصفحات الأربع الأولى فقط من المستند.

إذا كنت ترغب في اختبار Aspose.PDF for .NET بدون قيود النسخة التجريبية، يمكنك أيضًا طلب ترخيص مؤقت لمدة 30 يومًا. يرجى الرجوع إلى كيفية الحصول على ترخيص مؤقت؟

الترخيص الكلاسيكي

يمكن تحميل الترخيص من ملف أو كائن دفق. أسهل طريقة لتعيين ترخيص هي وضع ملف الترخيص في نفس المجلد الذي يوجد فيه ملف Aspose.PDF.dll وتحديد اسم الملف بدون مسار، كما هو موضح في المثال أدناه.

إذا كنت تستخدم أي مكون آخر من Aspose لبرنامج .NET مع Aspose.PDF for .NET، يرجى تحديد مساحة الاسم للترخيص مثل Aspose.Pdf.License.

تحميل الترخيص من ملف

أسهل طريقة لتطبيق ترخيص هي وضع ملف الترخيص في نفس المجلد الذي يوجد فيه ملف Aspose.PDF.dll وتحديد اسم الملف فقط بدون مسار.

عند استدعاء طريقة SetLicense، يجب أن يكون اسم الترخيص الذي تمرره هو اسم ملف الترخيص الخاص بك. على سبيل المثال، إذا قمت بتغيير اسم ملف الترخيص إلى “Aspose.PDF.lic.xml” فمرر ذلك الاسم إلى طريقة Pdf.SetLicense(…) .

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void SetLicenseExample()
{
    // Initialize license object
    var license = new Aspose.Pdf.License();
    try
    {
        // Set license
        license.SetLicense("Aspose.Pdf.lic");
    }
    catch (Exception)
    {
        // Something went wrong
        throw;
    }
    Console.WriteLine("License set successfully.");
}

تحميل الترخيص من كائن دفق

يوضح المثال التالي كيفية تحميل ترخيص من دفق.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void SetLicenseFromStream()
{
    // Initialize license object
    var license = new Aspose.Pdf.License();
    // Load license from the file stream
    var myStream = new FileStream(
            "Aspose.Pdf.lic",
            FileMode.Open);
    // Set license
    license.SetLicense(myStream);
    Console.WriteLine("License set successfully.");
}

الترخيص المقنن

تسمح Aspose.PDF للمطورين بتطبيق مفتاح مقنن. سيتم استخدام آلية الترخيص المقنن جنبًا إلى جنب مع طريقة الترخيص الحالية. يمكن للعملاء الذين يرغبون في أن يتم فوترتهم بناءً على استخدام ميزات واجهة برمجة التطبيقات استخدام الترخيص المقنن. لمزيد من التفاصيل، يرجى الرجوع إلى قسم الأسئلة الشائعة حول الترخيص المقنن. يوفر هذا الدليل أفضل الممارسات للتنفيذ السلس ومنع الانقطاعات بسبب تغييرات حالة الترخيص.

تستخدم الفئة “Metered” لتطبيق المفاتيح المقننة. فيما يلي نموذج من الشيفرة يوضح كيفية تعيين المفاتيح العامة والخاصة المقننة.

لمزيد من التفاصيل، يرجى الرجوع إلى قسم الأسئلة الشائعة حول الترخيص المقنن.

طرق الترخيص المقنن

لتطبيق الترخيص المقنن، استخدم طريقة SetMeteredKey لتنشيط الترخيص المقنن من خلال توفير مفاتيحك العامة والخاصة. يجب القيام بذلك مرة واحدة أثناء تهيئة التطبيق لضمان الترخيص الصحيح.

مثال:

 var metered = new Aspose.Pdf.Metered();
 metered.SetMeteredKey("your-public-key", "your-private-key");

تستخدم طريقة IsMeteredLicensed() للتحقق مما إذا كان الترخيص المقنن نشطًا.

مثال:

bool isLicensed = Aspose.Pdf.License.IsMeteredLicensed();
if (!isLicensed) 
{
    metered.SetMeteredKey("your-public-key", "your-private-key");
}

تستخدم الطريقة Metered.GetConsumptionCredit() للحصول على معلومات حول أرصدة الاستهلاك. تستخدم الطريقة Metered.GetConsumptionQuantity() للحصول على معلومات حول حجم ملف الاستهلاك.

مثال:

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void SetMeteredLicense()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
    // Set metered public and private keys
    var metered = new Aspose.Pdf.Metered();
    // Access the setMeteredKey property and pass public and private keys as parameters
    metered.SetMeteredKey("your public key", "your private key");

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
    {
       // Add five pages
       AddPages(document, 5);
       // Save the document
       document.Save(dataDir + "output.pdf")
    }
}

private static void AddPages(Document document, int n)
{
    for(int i = 0; i < n; i++)
    {
        document.Pages.Add();
    }
}   

أفضل الممارسات للترخيص المقنن

✅ النهج الموصى به: نمط الساكن لضمان إعداد ترخيص مستقر:

  • قم بتطبيق الترخيص مرة واحدة عند بدء التطبيق.
  • استخدم نمط الساكن (أو نهج مشابه) لإنشاء وإعادة استخدام مثيل الترخيص المقنن.
  • تحقق دوريًا من حالة الترخيص باستخدام IsMeteredLicensed(). أعد تطبيق الترخيص فقط إذا أصبح غير صالح.
  • إذا تم تنفيذ ذلك بشكل صحيح، سيظل الترخيص صالحًا لمدة 24 ساعة حتى إذا كان خادم الترخيص غير متاح مؤقتًا.

مثال: تنفيذ الساكن

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
public class AsposeLicenseManager
{
    private static AsposeLicenseManager _instance;
    private static readonly object _lock = new object();
    private Aspose.Pdf.Metered _metered;

    private AsposeLicenseManager()
    {
        _metered = new Aspose.Pdf.Metered();
        _metered.SetMeteredKey("your-public-key", "your-private-key");
    }

    public static AsposeLicenseManager Instance
    {
        get
        {
            lock (_lock)
            {
                if (_instance == null)
                {
                    _instance = new AsposeLicenseManager();
                }
                return _instance;
            }
        }
    }

    public void ValidateLicense()
    {
        if (!Aspose.Pdf.License.IsMeteredLicensed())
        {
        _metered.SetMeteredKey("your-public-key", "your-private-key");
        }
    }
}

❌ الأخطاء الشائعة التي يجب تجنبها:

  • تطبيقات الترخيص المتكررة
  • لا تقم بإنشاء مثيل جديد من الترخيص المقنن لكل عملية.
  • إذا كان خادم الترخيص غير متاح أثناء التهيئة، قد يعود الترخيص إلى وضع التجربة.
  • لا تقم بتطبيق الترخيص بشكل متكرر لكل عملية.
  • يمكن أن تتسبب تطبيقات الترخيص المتكررة في العودة إلى وضع التجربة إذا كان خادم الترخيص غير متاح مؤقتًا.

الملخص:

✅ قم بتعيين الترخيص المقنن مرة واحدة عند بدء التطبيق. ✅ استخدم نمط الساكن لإدارة مثيل واحد. ✅ تحقق دوريًا وأعد تطبيق الترخيص إذا لزم الأمر. ❌ تجنب تطبيقات الترخيص المتكررة لمنع العودة إلى وضع التجربة. من خلال اتباع هذه الممارسات الجيدة، تضمن استخدامًا سلسًا وغير منقطع لـ Aspose.PDF مع الترخيص المقنن.

إذا تم تهيئة الترخيص، فطالما أن هذا الكائن “يعيش”، حتى إذا فقد الاتصال بخادم الترخيص لسبب ما، سيعتبر الترخيص نشطًا لمدة 7 أيام أخرى. إذا قمت بتهيئة الترخيص كلما احتجت إلى القيام بشيء ما ولم يكن هناك اتصال بالخادم في لحظة التهيئة، فسيذهب الترخيص إلى وضع التجربة. يجب التأكيد أيضًا على أنه إذا قام المستخدم بتهيئة الترخيص، فطالما أن هذا الكائن “يعيش”، حتى إذا فقد الاتصال بخادم الترخيص لسبب ما، سيعتبر الترخيص نشطًا لمدة 24 ساعة أخرى. إذا قمت بتهيئة الترخيص كلما احتجت إلى القيام بشيء ما ولم يكن هناك اتصال بالخادم في لحظة التهيئة، فسيذهب الترخيص إلى وضع التجربة.

يرجى ملاحظة أن تطبيقات COM التي تعمل مع Aspose.PDF for .NET يجب أن تستخدم أيضًا فئة الترخيص.

نقطة واحدة تحتاج إلى اعتبار: يرجى ملاحظة أن الموارد المضمنة مدرجة في التجميع بالطريقة التي تمت إضافتها، أي إذا قمت بإضافة ملف نصي كموارد مضمنة في التطبيق وفتحت EXE الناتج في المفكرة، سترى المحتويات الدقيقة لملف النص. لذا عند استخدام ملف الترخيص كموارد مضمنة، يمكن لأي شخص فتح ملف exe في محرر نصوص بسيط ورؤية/استخراج محتويات الترخيص المضمن.

لذلك، من أجل وضع طبقة إضافية من الأمان عند تضمين الترخيص مع التطبيق، يمكنك ضغط/تشفير الترخيص وبعد ذلك يمكنك تضمينه في التجميع. لنفترض أن لدينا ملف ترخيص Aspose.PDF.lic، لذا دعنا نجعل Aspose.PDF.zip بكلمة مرور test ونقوم بتضمين هذا الملف المضغوط في الحل. يمكن استخدام مقتطف الشيفرة التالي لتهيئة الترخيص:

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void SetLicenseFromStream()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
    var license = new Aspose.Pdf.License();
    license.SetLicense(GetSecureLicenseFromStream());
    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
    {
        // Get the page count of document
        Console.WriteLine(document.Pages.Count);
    }
}

private static Stream GetSecureLicenseFromStream()
{
    var assembly = Assembly.GetExecutingAssembly();
    var memoryStream = new MemoryStream();
    using (var zipToOpen = assembly.GetManifestResourceStream("Aspose.Pdf.Examples.License.Aspose.PDF.zip"))
    {
        using (ZipArchive archive = new ZipArchive(zipToOpen ?? throw new InvalidOperationException(), ZipArchiveMode.Read))
        {
            var unpackedLicense  = archive.GetEntry("Aspose.PDF.lic");
            unpackedLicense?.Open().CopyTo(memoryStream);
        }
    }

    memoryStream.Position = 0;
    return memoryStream;
}