Free / Time Limited / Professional

GemBox.Pdf is a .NET library for processing PDF files that has three working modes:

Every working mode uses the same GemBox.Pdf.dll file and delivers the same performance and set of features, but has some restrictions (except for the Professional mode).

Before using any other member of GemBox.Pdf library from your C# or VB.NET application, you must call a ComponentInfo.SetLicense method to set the working mode.

Free Pdf library

The default behavior of the Free mode is that a FreeLimitReachedException is thrown when loading or saving a PDF file with more than 2 pages.

You can change this behavior to achieve the trimming of PDF content to the first 2 pages by handling a ComponentInfo.FreeLimitReached event and setting FreeLimitEventArgs.FreeLimitReachedAction to Stop.

You can use the Free mode for any purpose, including use in commercial applications.

// Set license key to use GemBox.Pdf in a Free mode.
ComponentInfo.SetLicense("FREE-LIMITED-KEY");

// Stop reading/writing a PDF when the free limit is reached.
ComponentInfo.FreeLimitReached += (sender, e) => e.FreeLimitReachedAction = FreeLimitReachedAction.Stop;
' Set license key to use GemBox.Pdf in a Free mode.
ComponentInfo.SetLicense("FREE-LIMITED-KEY")

' Stop reading/writing a PDF when the free limit is reached.
AddHandler ComponentInfo.FreeLimitReached, Sub(sender, e) e.FreeLimitReachedAction = FreeLimitReachedAction.Stop

Time Limited Pdf library

You can use the Time Limited mode to evaluate beyond the first 2 pages.

To set the mode to Time Limited, you need to use a temporary or time-limited key, which you can get by contacting us.

The limitation of Time Limited mode is that it can be used only for 30 days.

// Set license key to use GemBox.Pdf in a Time Limited mode.
ComponentInfo.SetLicense("XX−<START DATE>−<END DATE>-XXXXXXXXXX");
' Set license key to use GemBox.Pdf in a Time Limited mode.
ComponentInfo.SetLicense("XX−<START DATE>−<END DATE>-XXXXXXXXXX")

Professional Pdf library

To set the mode to Professional, you need to use a professional key which you can get by purchasing a license.

The Professional mode has no limitations, and the professional keys are perpetual (they can be used forever).

// Set license key to use GemBox.Pdf in a Professional mode.
ComponentInfo.SetLicense("XXXXXXXXXX");
' Set license key to use GemBox.Pdf in a Professional mode.
ComponentInfo.SetLicense("XXXXXXXXXX")

Important, every developer working on an application that uses the GemBox component in Professional mode, must be covered with a license. The professional keys are uniquely generated for each license and must be kept confidential.

For more information, please read the FAQ page and the product's EULA.

If you're working on an open-source project, please make sure that your license is not publicly accessible. One way to keep the professional key out of your source code is to bind your project's configuration to an external source that's not included in the project, like a secret file or environment variable.

Keeping your license key secret in .NET framework

First, install the Microsoft.Configuration.ConfigurationBuilders.UserSecrets NuGet package. The package will modify the app.config file by adding a configuration builder with a specified userSecretsId value.

Second, create appSettings in the app.config file that uses the previously added configuration builder and has an empty license key.

<configuration>

    <configSections>
        <section name="configBuilders"
                 type="System.Configuration.ConfigurationBuildersSection,
                       System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                 restartOnExternalChanges="false"
                 requirePermission="false" />
    </configSections>

    <configBuilders>
        <builders>
            <add name="Secrets"
                 userSecretsId="31c68e26-876c-43f5-8bb4-d87c9ec5f1ce"
                 type="Microsoft.Configuration.ConfigurationBuilders.UserSecretsConfigBuilder,
                       Microsoft.Configuration.ConfigurationBuilders.UserSecrets, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        </builders>
    </configBuilders>

    <appSettings configBuilders="Secrets">
        <add key="GemBoxLicenseKey" value="" />
    </appSettings>

</configuration>

Third, add a secret file that has your professional key in the following location: %APPDATA%\Microsoft\UserSecrets\<userSecretsId>\secrets.xml

<root>
  <secrets ver="1.0">
    <secret name="GemBoxLicenseKey" value="XXXXXXXXXX" />
  </secrets>
</root>

Last, set the license key in your application.

using System.Configuration;
using GemBox.Pdf;

class Program
{
    static Program()
    {
        var license = ConfigurationManager.AppSettings["GemBoxLicenseKey"];
        ComponentInfo.SetLicense(license);
    }

    static void Main()
    {
        using (var document = new PdfDocument())
        {
            document.Pages.Add();
            document.Save("Sample.pdf");
        }
    }
}
Imports System.Configuration
Imports GemBox.Pdf

Module Program

    Sub New()
        Dim license = ConfigurationManager.AppSettings("GemBoxLicenseKey")
        ComponentInfo.SetLicense(license)
    End Sub

    Sub Main()
        Using document As New PdfDocument()
            document.Pages.Add()
            document.Save("Sample.pdf")
        End Using
    End Sub

End Module

Keeping your license key secret in .NET Core

First, run the following commands in the terminal.

dotnet user-secrets init
dotnet user-secrets set GemBoxLicenseKey XXXXXXXXXX

As a result, the secret file that has your professional key will be generated on one of the following locations.

  • For Windows: %APPDATA%\Microsoft\UserSecrets\<UserSecretsId>\secrets.json
  • For Linux / macOS: ~/.microsoft/usersecrets/<UserSecretsId>/secrets.json
{
  "GemBoxLicenseKey": "XXXXXXXXXX"
}

Second, install the Microsoft.Extensions.Configuration.UserSecrets NuGet package.

Last, set the license key in your application.

using System.Linq;
using Microsoft.Extensions.Configuration;
using GemBox.Pdf;

class Program
{
    static Program()
    {
        var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build();
        var provider = config.Providers.First();

        provider.TryGet("GemBoxLicenseKey", out string license);
        ComponentInfo.SetLicense(license);
    }

    static void Main()
    {
        using (var document = new PdfDocument())
        {
            document.Pages.Add();
            document.Save("Sample.pdf");
        }
    }
}
Imports System.Linq
Imports Microsoft.Extensions.Configuration
Imports GemBox.Pdf

Module Program

    Sub New()
        Dim config = New ConfigurationBuilder().AddUserSecrets(Of Program)().Build()
        Dim provider = config.Providers.First()

        Dim license As String = Nothing
        provider.TryGet("GemBoxLicenseKey", license)
        ComponentInfo.SetLicense(license)
    End Sub

    Sub Main()
        Using document As New PdfDocument()
            document.Pages.Add()
            document.Save("Sample.pdf")
        End Using
    End Sub

End Module

Another way to store your professional key is to use an external secrets management service, such as Azure Key Vault, AWS Key Management Service, or Google Cloud Key Management Service.

Want more?

GitHub

Check the next example or select an example from the menu. You can also download our examples from the GitHub.


Like it?

Download Buy

If you want to try the GemBox.Pdf yourself, you can download the free version. It delivers the same performance and set of features as the professional version, but with some operations limited. To remove the limitation, you need to purchase a license.