Unplanned
Last Updated: 17 Jun 2025 07:09 by ADMIN

Read the documentation for CancelationTokenSource.CancelAfter:

this method will throw an ArgumentOutOfRangeException when: delay.TotalMilliseconds is less than -1 or greater than Int32.MaxValue (or UInt32.MaxValue - 1 on some versions of .NET). Note that this upper bound is more restrictive than TimeSpan.MaxValue.

----------------------------------------------------

your code in CancelationTokenSourceFactory.CreateTokenSource does this check:

if (timeSpan.HasValue && timeSpan.Value != TimeSpan.MaxValue)

this check for TimeSpan.MaxValue seems totally pointless here, if timeSpan is anything between ~2147483647 and 922337203685476 milliseconds long this will still just throw a ArgumentOutOfRangeException.

I suspect that this check was intended as a way to prevent creating a cancellation timer that never triggers in the CancellationTokenSource, which should look like this:

if (timeSpan.HasValue && timeSpan != Timeout.InfiniteTimeSpan) //Timeout.InfiniteTimeSpan is -1 milliseconds
which still seems like premature optimization with no noticeable benefit but at least it isn't completely pointless.
Unplanned
Last Updated: 13 Jun 2025 10:08 by ADMIN

In the 2025 version of the Documents packages, "TimeSpan? timeout" were added to a number of interfaces, with the old versions obsoleted, for example: IWorkbookFormatProvider.Import & IWorkbookFormatProvider.Export.

This is a very strange choice, because this limits the flexibility of the interfaces for no reason at all. By only providing the TimeSpan parameter and not a CancellationToken is currently impossible to cancel the operation because e.g. an API request was canceled.

Internally these methods are implemented by first creating a cancellation token using

using CancellationTokenSource cancellationTokenSource = CancelationTokenSourceFactory.CreateTokenSource(timeout);

the token from this CancellationTokenSource is then passed to a protected method. Because this internal method uses a CancellationToken anyway, there is practically 0 development cost to exposing this in the interface, which makes the choice not to do so even more confusing.

The interfaces should expose methods that take a CancellationToken instead of a TimeSpan. This would allow for the same functionality as the TimeSpan parameter, by simply passing a cancellation token with a CancelAfter set with a TimeSpan, and an extension method could be provided for the interface which does exactly that, so users can still call these methods with a TimeSpan parameter if they wish to do so for convenience.

Please, in the next version, make these interfaces methods like this:

Workbook Import(Stream input, CancellationToken cancellationToken = default);
void Export(Workbook workbook, Stream output, CancellationToken cancellationToken = default);

and, for convenience, add extension methods for these like this:

public static class WorkbookFormatProviderExtensions
{
    public static Workbook Import(this IWorkbookFormatProvider workbookFormatProvider, Stream input, TimeSpan? timeout)
    {
        using CancellationTokenSource cancellationTokenSource = CancelationTokenSourceFactory.CreateTokenSource(timeout);
        return workbookFormatProvider.Import(input, cancellationTokenSource.Token);
    }
}

Affected interfaces I've run into so far:

  • Telerik.Windows.Documents.Spreadsheet.FormatProviders.IWorkbookFormatProvider
  • Telerik.Windows.Documents.Common.FormatProviders.IFormatProvider<T>

There may be more with this same pattern, I haven't checked.

Duplicated
Last Updated: 03 Jun 2025 13:02 by ADMIN
Created by: Brian
Comments: 1
Category: Telerik Document Processing
Type: Feature Request
1
In charts it should be possible to axis titles.
Unplanned
Last Updated: 27 May 2025 10:24 by Thomas
Handle the import of documents when the GoToR action`s file specification object is a string.
Completed
Last Updated: 22 May 2025 13:37 by ADMIN
Release 2025.2.520 (2025 Q2)
Created by: Jan Brandenburger
Comments: 0
Category: Telerik Document Processing
Type: Bug Report
1
When the image passed to the GetAllTextFromImage() method doesn't have any text in it, a NullReferenceException is thrown. The expected behaviour should be to return a null or empty string.
Completed
Last Updated: 22 May 2025 13:36 by ADMIN
Release 2025.2.520 (2025 Q2)
When importing an existing document which contains a GoToR action, we should preserve the action even after exporting it.
Completed
Last Updated: 22 May 2025 13:36 by ADMIN
Release 2025.2.520 (2025 Q2)
When importing an xlsx document with a comment that does not have an author, an exception is thrown "Sequence contains no matching element" Note that this is a different bug from the very similar SpreadProcessing: Exception "Sequence contains no matching element" thrown in files containing notes or comments (telerik.com)
Completed
Last Updated: 22 May 2025 13:36 by ADMIN
Release 2025.2.520 (2025 Q2)
When the line spacing of the paragraph is set to "at least" and the line spacing value is smaller than the font size, Word makes the actual value of the line spacing to be larger in order not to squish the lines. During export to HTML, Word skips the line spacing in such case, in order to preserve the same effect. WordsProcessing exports the line spacing, which causes the lines to become squished.
Declined
Last Updated: 02 May 2025 06:24 by ADMIN
When trying to pass the ByteArray as an argument to PDFFormatProvider .Import I get the following error.

PdfFormatProvider provider = new PdfFormatProvider();
 RadFixedDocument fixedDocument = provider.Import(document.ByteArray);

System.NullReferenceException: Object reference not set to an instance of an object.
   at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.RadFixedDocumentImportContext.BeginImportOverride()
   at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.BaseImportContext.BeginImport(Stream pdfFileStream)
   at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.Import.PdfImporter.Import(Stream input, IPdfImportContext context)
   at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.PdfFormatProvider.<>c__DisplayClass19_0.<ImportOverride>b__0()
   at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.ExceptionHandling.ExecutionHandler.TryHandleExecution[E](Action operation)
   at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.PdfFormatProvider.ImportOverride(Stream input, CancellationToken cancellationToken)
   at Telerik.Windows.Documents.Fixed.FormatProviders.Pdf.PdfFormatProvider.ImportOverride(Stream input)
   at Telerik.Windows.Documents.Common.FormatProviders.FormatProviderBase`1.Import(Stream input)
   at Telerik.Windows.Documents.Common.FormatProviders.BinaryFormatProviderBase`1.Import(Byte[] input)

I have attached the PDF I'm trying to import.

Unplanned
Last Updated: 14 Mar 2025 14:48 by Kevin
Created by: Kevin
Comments: 0
Category: Telerik Document Processing
Type: Feature Request
1
Provide API for configuring Freeze Panes.
Need More Info
Last Updated: 19 Feb 2025 14:51 by ADMIN
Created by: Jörg
Comments: 3
Category: Telerik Document Processing
Type: Bug Report
1

We use the PDF viewer in an WPF project and see sometimes faulty pdfs in the telerik viewer. If I open the pdf file in acrobat it lloks fine. Do you know this problem ?

Attached you find the original file and a screenshot from PDF viewer. Other files are shown correct in the telerik viewer.

Completed
Last Updated: 12 Feb 2025 15:18 by ADMIN
Release 2025.1.205 (2025 Q1)
The export method of the WorkbookFormatProviderBase does not use its timeout parameter.
Declined
Last Updated: 22 Jan 2025 11:20 by ADMIN

The value of the TextBoxField is not visible until the field is clicked.

Workaround: Force content update:

foreach (var widget in textBoxField.Widgets)
{
    widget.RecalculateContent();
}

If the update still doesn't fix the issue, change the font prior to setting the value of the field:

foreach (var widget in textBoxField.Widgets)
{
    widget.TextProperties.Font = FontsRepository.Helvetica;
}
Another option could be to set the ViewersShouldRecalculateWidgetAppearances to true in order to force the viewers to update the appearance of the widgets.

RESOLVED: The issue is dismissed. The actual reason for the results is that FontsProvider implementation is missing. For accurately displaying the text the fonts used in the document need to be resolved correctly.
Completed
Last Updated: 13 Nov 2024 09:26 by Richard
Release 2024.4.1106 (Q4 2024)
When a workbook contains two charts (regardless of whether they are in the same sheet or not) and both of them contain axes, the resulting document will be invalid and Excel will not be able to open it.
Completed
Last Updated: 13 Nov 2024 09:23 by ADMIN
Release 2024.3.802 (2024 Q3)
Exporting specific documents with fields to PDF causes NullReferenceException.
Unplanned
Last Updated: 17 Sep 2024 14:36 by Shailaja
At the moment the only data that can be passed to FloatingChartShape is a CellRange to be parsed to a chart. Some clients would like to use the IChartData implementations: NumericChartData and StringChartData. We need a FloatingChartShape constructors like this:

public FloatingChartShape(Worksheet worksheet, CellIndex cellIndex, IChartData values, IChartData categories)

And others if necessary.
Completed
Last Updated: 02 Aug 2024 11:09 by ADMIN
Release 2024.3.802 (2024 Q3)

When a format string of type: _ * # ##0_ ;_ * -# ##0_ ;_ * "-"??_ ;_ @_  is set through code and the culture settings of the machine are set so that the number grouping symbol is space, the resulting format string comes out incorrect on export: _,*,# ##0_,;_,*,-# ##0_,;_,*,"-"??_,;_,@_, 

This will happen every time the symbols in-between and after _ and * coincide with the number group separator.

Completed
Last Updated: 02 Aug 2024 11:09 by ADMIN
Release 2024.3.802 (2024 Q3)
Wrong sheet name in exception message when adding sheet with already existing name
Unplanned
Last Updated: 31 Jul 2024 15:10 by Christian

After Excel introduced the dynamic array support, files produced with the older Excel versions have formulas that may be displayed with @ in some contexts. For example a file that had the following:

=SUM(IF(A1:A10=1, B1:B10, 0))

Will be displayed like so:

=SUM(IF(@A1:A10=1, B1:B10, 0))

This is done in order to preserve the behavior of the files created in older versions of Excel.

The files created by SpreadProcessing are also treated by Excel as if they are created by pre-dynamic array Excel. Please, introduce support for the new behavior.

Unplanned
Last Updated: 19 Jul 2024 09:38 by Rory
Created by: Rory
Comments: 0
Category: Telerik Document Processing
Type: Feature Request
2
In Excel this is achieved using the "Categories in reverse order checkbox."
1 2 3 4 5 6