To explore the system effectively, you may want immediate access to the API. GroupDocs.Annotation simplifies this by offering various purchase plans, along with an evaluation mode and a 30-day Temporary License for evaluation.
Note
To learn more about licensing options, purchasing, and evaluation policies, refer to the Purchase Policies and FAQ section.
Purchased License
After purchasing GroupDocs.Annotation for Python via .NET, you will receive a license file that unlocks the full functionality of the API. A few rules apply:
Apply the license only once per process, in your start-up code.
Apply it before constructing any Annotator or other GroupDocs.Annotation object.
A license can be applied from a file path, from a binary stream (handy when the license is an embedded resource), or as a Metered License that bills by usage.
Use the set_license method to license the component. Calling it more than once is harmless — it simply wastes a little processor time.
Set a license from a file
The example below applies a license from a file path. It reads the path from the GROUPDOCS_LIC_PATH environment variable and falls back to a local GroupDocs.Annotation.lic file:
importosfromgroupdocs.annotationimportLicensedefset_license_from_file():# Resolve the license path from the environment, with a local fallbacklicense_path=os.environ.get("GROUPDOCS_LIC_PATH","./GroupDocs.Annotation.lic")# Apply the license before using any annotation featuresifos.path.exists(license_path):License().set_license(license_path=license_path)print("License set successfully.")else:print("License file not found. Running in evaluation mode.")if__name__=="__main__":set_license_from_file()
Set a license from a stream
You can also apply a license from any readable binary stream — useful when the license ships as an embedded resource:
importosfromgroupdocs.annotationimportLicensedefset_license_from_stream():# Resolve the license path from the environment, with a local fallbacklicense_path=os.environ.get("GROUPDOCS_LIC_PATH","./GroupDocs.Annotation.lic")# Apply the license from an open binary streamifos.path.exists(license_path):withopen(license_path,"rb")aslicense_stream:License().set_license(license_stream=license_stream)print("License set successfully from stream.")else:print("License file not found. Running in evaluation mode.")if__name__=="__main__":set_license_from_stream()
Set a metered license
A Metered License lets you pay for what you use. Set the public and private keys with set_metered_key before using the API, then query consumption at any time:
importosfromgroupdocs.annotationimportMetereddefset_metered_license():# Read the metered public and private keys from the environmentpublic_key=os.environ.get("GROUPDOCS_METERED_PUBLIC_KEY","")private_key=os.environ.get("GROUPDOCS_METERED_PRIVATE_KEY","")# Apply the metered keys before using any annotation featuresifpublic_keyandprivate_key:metered=Metered()metered.set_metered_key(public_key=public_key,private_key=private_key)print("Metered license set successfully.")# Query the current metered consumptionprint(f"Consumption quantity: {Metered.get_consumption_quantity()}")print(f"Consumption credit: {Metered.get_consumption_credit()}")else:print("Metered keys not provided. Running in evaluation mode.")if__name__=="__main__":set_metered_license()
Changing the license file name
You are not required to keep the license file name as GroupDocs.Annotation.lic. You can rename it to any preferred name and use that name when applying the license in your application.
“Cannot find license filename” exception
When you download the license from the GroupDocs website it is saved as GroupDocs.Annotation.lic. However, some web browsers may automatically append .xml, resulting in GroupDocs.Annotation.lic.xml.
If your Windows settings are configured to hide file extensions (the default), the file may still appear as GroupDocs.Annotation.lic in File Explorer even though the actual name is GroupDocs.Annotation.lic.xml. This discrepancy can cause set_license to throw an exception. To fix it, manually rename the file to remove the .xml extension, or disable “Hide extensions for known file types” in Windows.
How to evaluate GroupDocs.Annotation
You can evaluate GroupDocs.Annotation for Python via .NET without purchasing a license. The evaluation version is identical to the purchased one; it becomes fully licensed once you set a license.
Evaluation mode
Without a license, GroupDocs.Annotation runs in evaluation mode:
The API is fully functional — you can open documents, add, get, update, and remove annotations, and save the result. Every operation completes successfully and no exception is thrown.
There is no limit on the number of documents you can open in a process and no cap on the number of annotations you can add. You can run as many Annotator operations as you like, one after another, in the same process.
An evaluation watermark is added to the output document, so the saved file is slightly larger than a licensed one.
To remove the evaluation watermark, apply a purchased or temporary license as shown above.
Temporary License
To produce output without the evaluation watermark while you assess the full features of GroupDocs.Annotation, you can request a 30-day “Temporary License”.
Was this page helpful?
Any additional feedback you'd like to share with us?
Please tell us how we can improve this page.
Thank you for your feedback!
We value your opinion. Your feedback will help us improve our documentation.