Skip to content

Q2 2025 Release Changes #541

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 30 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
cd2f593
Q2 2025 Release Changes
YoanKar Apr 7, 2025
b543aa2
Documented "Multiple Digital Signatures" (PdfStreamSigner)
YoanKar Apr 7, 2025
ecb0d37
Linux OCR
YoanKar Apr 8, 2025
d9664f0
Stylistic changes
YoanKar Apr 8, 2025
d658ad6
Generated files warning
YoanKar Apr 8, 2025
6d6fbd5
Style changes
YoanKar Apr 8, 2025
d25698b
added Launch Actions
dessyordanova Apr 10, 2025
2846d0c
added GoToRAction
dessyordanova Apr 14, 2025
236f86b
Environment commands
YoanKar Apr 14, 2025
010bf69
Update overview.md
dessyordanova Apr 14, 2025
6469b65
Merge branch 'yoan/q2-2025-release' of https://github.com/telerik/doc…
dessyordanova Apr 14, 2025
8f3bad5
Update gotor-actions.md
dessyordanova Apr 14, 2025
c7fb643
Update gotor-actions.md
dessyordanova Apr 14, 2025
a8a3c15
added info for the MergedFieldNameResolving
dessyordanova Apr 15, 2025
565097f
Adjust columns width and border
dessyordanova Apr 15, 2025
00dc0fb
ZipExtensions timeout methods + CopyTo timeout method documented.
YoanKar Apr 15, 2025
3cca9d1
Separate distribution - Downloads section
dessyordanova Apr 15, 2025
552d221
replace images
dessyordanova Apr 15, 2025
2d67f66
Licensing before 2025
dessyordanova Apr 15, 2025
e46da08
polishing the Licensing before 2025
dessyordanova Apr 16, 2025
2c16e11
add the version
dessyordanova Apr 16, 2025
9baa9d2
Moved Licensing before 2025 to KB section
dessyordanova Apr 16, 2025
78e33fe
Documented new Clone method and refactored articles.
YoanKar Apr 21, 2025
f723d03
Merge branch 'yoan/q2-2025-release' of https://github.com/telerik/doc…
YoanKar Apr 22, 2025
1603e04
Bolded Public API table entries for Form and Image articles.
YoanKar Apr 22, 2025
3abd778
Clarified the Tesseract Language Data section
YoanKar Apr 28, 2025
25dbd63
Gen AI
YoanKar Apr 29, 2025
92310cb
config.yml
YoanKar Apr 29, 2025
2306669
Add Marked Content docs
dessyordanova Apr 29, 2025
1a884ea
Merge branch 'yoan/q2-2025-release' of https://github.com/telerik/doc…
dessyordanova Apr 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,9 @@ navigation:
libraries/radpdfprocessing/features/embedded-file-streams:
title: Embedded File Streams
position: 5
libraries/radpdfprocessing/features/ai-document-analysis:
title: AI Document Analysis
position: 6
libraries/radpdfprocessing/model/interactive-forms:
title: Interactive Forms
libraries/radpdfprocessing/model/interactive-forms/form-fields:
Expand Down
50 changes: 50 additions & 0 deletions getting-started/download-product-files.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
title: Download Product Files
description: Learn how to download the source code, pdf documentation, different versions from your Telerik account.
page_title: Download Product Files
slug: download-product-files
tags: download, dpl, product, file, assets, distribution
published: True
position: 4
---

# Download Product Files

As of **Q2 2025** the [Telerik Document Processing]({%slug introduction%}) libraries are available as a separate distribution in the **Downloads** section of your [Telerik account](https://www.telerik.com/account/).

Since the **Telerik Document Processing** is a part of several [Telerik bundles](https://www.telerik.com/purchase.aspx) and it is installed following the steps for installing the suite with which you've obtained the product, when you purchase a Telerik license, you can download the following files:

* Latest Public version

* Latest [Preview version]({%slug obtain-use-latest-internal-build-version%})

* Assemblies available as NuGet packages

* Previous versions

* Source code

* Documentation files

Тo download these files, follow the steps below:

1\. Log into [your Telerik account](https://www.telerik.com/account/) and click the **Downloads** option:

![Downloads in Your Account](images/downloads-account.png)

2\. Select **Telerik Document Processing**:

![DPL Downloads in Your Account](images/dpl-downloads-account.png)

3\. Select an asset you want to download: DLLs, PDB files, NuGet Packages, documentation files, or Source code:

![DPL Product Files](images/dpl-product-files.png)

4\. You can choose between official Public versions or Preview versions (if such exist) according to the activation date of your license. From the **Version** drop down list, you can also select which specific version to download.

>important If you are looking for a specific version, but it isn't listed in the Version list, please contact our sales team: **[email protected]**. They will make the required version available for download.

## See Also

* [What Versions of Document Processing Libraries are Distributed with the Telerik Products]({%slug distribute-telerik-document-processing-libraries-net-versions%})
* [Latest Internal Build (Preview Version)]({%slug obtain-use-latest-internal-build-version%})
Binary file added getting-started/images/downloads-account.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added getting-started/images/dpl-downloads-account.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added getting-started/images/dpl-product-files.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
61 changes: 61 additions & 0 deletions knowledge-base/before-q2-2025.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
title: Licensing before 2025
page_title: "Licensing mechanism before Q2 2025 explained."
description: "Learn more about Licensing in Telerik Document Processing before Q2 2025 and how you may upgrade your Trial license to Purchase license"
type: how-to
slug: licensing-before-q2-2025
tags: licensing, dpl, document, processing, before, 2025, trial, dev
published: True
position: 4
---

# Licensing before 2025

[Telerik Document Processing]({%slug introduction%}) used to come in separate **Trial** and **Developer** (or commercial) assets distribution until Q2 2025.

![License Mechanism](images/license-mechanism.png)

>caution After launching the [new licensing mechanism](https://www.telerik.com/blogs/license-key-files-telerik-kendo-ui-products-2025-update), the activation is performed through a [license key]({%slug setting-up-license-key%}) (trial or commercial). Upgrading from a Trial to Developer (or commercial) version requires only updating the license key without the necessity of reinstalling the respective Telerik product.

## Trial Licenses

Telerik Document Processing is available under a 30-day trial license with a full-featured version of the tool—no restrictions! What’s more, you are eligible for complete technical support during your trial period in case you have any questions.

The free trial licenses of all Telerik products are fully functional and will work for an unlimited time, but will randomly display a copyright message. These builds have the `Trial` abbreviation in their file names. To use the trial version of Telerik Document Processing, you need to agree to the [End User License Agreement (EULA)]({%slug license-agreement%}).

* To sign up for a free 30-day trial, [Log in to your Telerik account or create one](https://www.telerik.com/account).
* To download the trial version, refer to the [Telerik Document Processing's Product page](https://www.telerik.com/document-processing-libraries).
* To download a developer build with a trial license, log into your [Telerik account](https://www.telerik.com/account/).

## Developer Licenses

Telerik Document Processing also offers a developer license. To use Telerik Document Processing commercially, you need to purchase a license and to agree to the terms of use, which are fully described in the [End User License Agreement (EULA)]({%slug license-agreement%}).

Developer licenses come with modified DLLs, which work without displaying copyright messages. If you have a Developer license for one or more Telerik components, you need to ensure that you are using the developer build when downloading the libraries. These builds have the `Dev` abbreviation in their file names.

If your application is displaying a copyright message intermittently, this means that you are using a trial version of the product. Log in to your [Telerik account and download](https://www.telerik.com/account/downloads) the developer build by choosing the product from the available Licenses.

For more information on the commercial terms, refer to the pricing list of the [available developer licenses which include Telerik Document Processing](https://www.telerik.com/purchase.aspx)

## Upgrading from Trial to Developer

To upgrade the trial version of your license to a developer license:

1. Back up your Telerik Document Processing files and folders especially if your project uses the settings that are included in them.
1. Uninstall the __Trial__ version of the Telerik product with which you have obtained the Document Processing libraries either by using the __Start Menu__ shortcut or the __Add/Remove Programs__ dialog.
1. Obtain the new __Dev__ installer and [install Telerik Document Processing]({%slug installation-installing-on-your-computer%}).

>note More information is available in the following KB article: [How to Upgrade Trial to Licensed Version]({%slug upgrade-trial-to-licensed-version%}).

## Redistribution

Telerik Document Processing is a part of several [Telerik bundles](https://www.telerik.com/purchase.aspx) and is licensed under the conditions with which you've obtained the product. Read more in the [Redistributing Telerik Document Processing]({%slug installation-deploying-telerik-document-processing%}) topic.

For further discussing your planned use of Telerik Document Processing, send an email to [[email protected]](mailto:[email protected]).

# See Also

* [Trial vs Licensed version]({%slug trial-license-limitations%})
* [Installing on Your Computer]({%slug installation-installing-on-your-computer%})
* [Install using NuGet Packages]({%slug installation-nuget-packages%})
* [Download Product Files]({%slug download-product-files%})
Binary file added knowledge-base/images/license-mechanism.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
---
title: CompleteContextQuestionProcessor
page_title: CompleteContextQuestionProcessor
slug: radpdfprocessing-features-ai-document-analysis-complete-context-question-processor
tags: ai, document, analysis, question, processor, complete, context
published: True
position: 4
---

# CompleteContextQuestionProcessor

The `CompleteContextQuestionProcessor` class enables you to ask questions about a PDF document and receive answers based on the entire document content. Unlike [PartialContextQuestionProcessor]({%slug radpdfprocessing-features-ai-document-analysis-partial-context-question-processor%}), this processor sends the complete document text to the AI model, which is suitable for smaller documents or when you need to ensure that the AI model has access to all the information in the document. This class inherits from the abstract `AIProcessorBase` class, which provides common functionality for all AI processors.

## When to Use CompleteContextQuestionProcessor

The `CompleteContextQuestionProcessor` is ideal for the following scenarios:

1. **Small Documents**: When the document is small enough to fit within the token limit of the AI model.
2. **Holistic Understanding**: When the question requires understanding the entire document context.
3. **Simplicity**: When you don't need the advanced embedding functionality of `PartialContextQuestionProcessor`.

However, if you're working with larger documents or want to optimize token usage, you should use the [PartialContextQuestionProcessor]({%slug radpdfprocessing-features-ai-document-analysis-partial-context-question-processor%}#when-to-use-partialcontextquestionprocessor) instead.

## Public API

### Properties

| Property | Description |
|----------|-------------|
| `Settings` | Gets the settings for the AI question-answering process. Returns `CompleteContextProcessorSettings`. |

### Methods

| Method | Description |
|--------|-------------|
| `public Task<string> AnswerQuestion(ISimpleTextDocument document, string question)` | Answers a question using the provided document. Parameters: `document` - The document containing the text to process, `question` - The question to answer. Returns a task that represents the asynchronous operation. The task result contains the answer to the question. |

## CompleteContextProcessorSettings

The `CompleteContextProcessorSettings` class provides configuration options for the question-answering process.

### Settings Properties

* **ModelMaxInputTokenLimit**: Gets or sets the maximum input token limit the model allows.
* **TokenizationEncoding**: Gets or sets the tokenization encoding.
* **ModelId**: Gets or sets the ID of the model.

## Usage Example

The following example demonstrates how to use the `CompleteContextQuestionProcessor` to ask questions about a PDF document, including working with specific document pages. For setting up the AI client as shown in this example, see the [AI Provider Setup]({%slug radpdfprocessing-features-ai-document-analysis-prerequisites%}#ai-provider-setup) section:

#### __[C#] Example 1: Using CompleteContextQuestionProcessor__

```csharp
private async void AskQuestionUsingCompleteContext()
{
// Load the PDF document
string filePath = @"path\to\your\document.pdf";
PdfFormatProvider formatProvider = new PdfFormatProvider();
RadFixedDocument fixedDocument;

using (FileStream fs = File.OpenRead(filePath))
{
fixedDocument = formatProvider.Import(fs);
}

// Set up the AI client (Azure OpenAI in this example)
string key = Environment.GetEnvironmentVariable("AZUREOPENAI_KEY");
string endpoint = Environment.GetEnvironmentVariable("AZUREOPENAI_ENDPOINT");
string model = "gpt-4o-mini";

AzureOpenAIClient azureClient = new(
new Uri(endpoint),
new Azure.AzureKeyCredential(key),
new AzureOpenAIClientOptions());
ChatClient chatClient = azureClient.GetChatClient(model);

IChatClient iChatClient = new OpenAIChatClient(chatClient);
int maxTokenCount = 128000;

// Create the processor
using (CompleteContextQuestionProcessor processor =
new CompleteContextQuestionProcessor(iChatClient, maxTokenCount))
{
try
{
// Customize settings if needed
processor.Settings.TokenizationEncoding = "cl100k_base";
processor.Settings.ModelId = "gpt-4o-mini";

// Example 1: Process full document
// Convert the document to a simple text representation
ISimpleTextDocument plainDoc = fixedDocument.ToSimpleTextDocument();

// Ask a question about the full document
string question = "What is the main subject of this document?";
string answer = await processor.AnswerQuestion(plainDoc, question);

Console.WriteLine($"Question: {question}");
Console.WriteLine($"Answer: {answer}");

// Ask another question
string question2 = "What are the key conclusions drawn in this document?";
string answer2 = await processor.AnswerQuestion(plainDoc, question2);

Console.WriteLine($"Question: {question2}");
Console.WriteLine($"Answer: {answer2}");

// Example 2: Process specific pages
// Convert only pages 5-10 to a simple text document (0-based index)
ISimpleTextDocument partialDoc = fixedDocument.ToSimpleTextDocument(4, 9);

// Ask a question about the specific pages
string pageQuestion = "Summarize the content of pages 5-10 of the document.";
string pageAnswer = await processor.AnswerQuestion(partialDoc, pageQuestion);

Console.WriteLine($"Question: {pageQuestion}");
Console.WriteLine($"Answer: {pageAnswer}");
}
catch (ArgumentException ex) when (ex.Message.Contains("The text is too long"))
{
Console.WriteLine("The document is too large to process with CompleteContextQuestionProcessor.");
Console.WriteLine("Consider using PartialContextQuestionProcessor instead.");
}
}
}
```

## Token Limit Considerations

The `CompleteContextQuestionProcessor` sends the entire document to the AI model, which means the document must fit within the model's token limit. If the document exceeds this limit, the `AnswerQuestion` method will throw an `ArgumentException`. This is a key difference from the [SummarizationProcessor]({%slug radpdfprocessing-features-ai-document-analysis-summarization-processor%}#handling-large-documents), which can handle documents of any size.

Here's how to check if a document is suitable for processing with `CompleteContextQuestionProcessor`:

#### __[C#] Example 2: Checking Document Size__

```csharp
private bool IsDocumentSuitableForCompleteContext(RadFixedDocument document, int modelMaxInputTokenLimit)
{
ISimpleTextDocument textDoc = document.ToSimpleTextDocument();

if (textDoc is ISimpleTextDocumentInternal internalDoc)
{
string text = internalDoc.Text;

// Create an encoding to count tokens
GptEncoding encoding = GptEncoding.GetEncoding("cl100k_base");

// Estimate the token count for the document text + prompt + typical question
const string prompt = "You are a helpful assistant. Use the following context to answer the question.";
const string typicalQuestion = "What is this document about?";

int estimatedTokens = encoding.Encode(prompt + text + typicalQuestion).Count;

// Allow for a safety margin
return estimatedTokens <= (int)(modelMaxInputTokenLimit * 0.9);
}

return false;
}
```

## See Also

* [AI Document Analysis Overview]({%slug radpdfprocessing-features-ai-document-analysis-overview%})
* [Prerequisites]({%slug radpdfprocessing-features-ai-document-analysis-prerequisites%})
* [SummarizationProcessor]({%slug radpdfprocessing-features-ai-document-analysis-summarization-processor%})
* [PartialContextQuestionProcessor]({%slug radpdfprocessing-features-ai-document-analysis-partial-context-question-processor%})
Loading