In Development
Last Updated: 08 Oct 2025 08:43 by ADMIN
NotSupportedImageFormatException is thrown during DOCX to PDF conversion in Linux.
Unplanned
Last Updated: 06 Oct 2025 11:03 by ADMIN

Corrupted document when exporting "Courier New" subset.

Workaround - fully embed the font:

var pdfFormatProvider = new PdfFormatProvider();
pdfFormatProvider.ExportSettings.FontEmbeddingType = FontEmbeddingType.Full;

 

Completed
Last Updated: 02 Oct 2025 05:28 by ADMIN
Release 2025 Q3
ADMIN
Created by: Anna
Comments: 1
Category: PdfProcessing
Type: Feature Request
5
The hierarchical document structure is a means to describe the PDF document structure, which is currently not supported. See 10.6.1 Structure Hierarchy on 856 page of the PDF specification for details.
This document structure is an alternative to the standard PDF structure and most non-Adobe software does not support it.

The document might have been created with Adobe software like Adobe LiveCycle Designer. Very often the document contains some fallback text in the standard PDF structure like:
"Please wait... If this message is not eventually replaced by the proper contents of the document, your PDF viewer may not be able to display this type of document."
"The document you are trying to load requires Adobe Reader 8 or higher. You may not have the Adobe Reader installed or your viewing environment may not be properly configured to use Adobe Reader. For information on how to install Adobe Reader and configure your viewing environment please see  http://www.adobe.com/go/pdf_forms_configure."
"For the best experience, open this PDF portfolio in Acrobat X, Reader X, or later."
Unplanned
Last Updated: 01 Oct 2025 13:07 by Babu

When imported in the WordsProcessing model, the current HTML doesn't respect the defined column width and all columns have identical width:

    <colgroup>
        <col span="1" style="width: 33.3302%;">
        <col span="1" style="width: 17.5658%;">
        <col span="1" style="width: 49.104%;">
    </colgroup>

Observed result:

Expected result:

Workaround: use the width property as follows:

    <colgroup>
        <col span="1" width="33.3302%">
        <col span="1" width="17.5658%">
        <col span="1" width="49.104%">
    </colgroup>
In Development
Last Updated: 29 Sep 2025 14:27 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.
Completed
Last Updated: 29 Sep 2025 14:22 by ADMIN
Release 2025.2.520 (2025 Q2)
This is a sample code to replicate the error which is triggered on export: 
            string inputFileName = "input.xlsx";
            if (!File.Exists(inputFileName))
            {
                throw new FileNotFoundException(String.Format("File {0} was not found!", inputFileName));
            }

            Telerik.Windows.Documents.Spreadsheet.Model.Workbook workbook;
            IWorkbookFormatProvider formatProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider();

            using (Stream input = new FileStream(inputFileName, FileMode.Open))
            { 
                workbook = formatProvider.Import(input, TimeSpan.MaxValue);
            }
            string outputFilePath = "output.xlsx";

            using (Stream output = new FileStream(outputFilePath, FileMode.Create))
            {
                formatProvider.Export(workbook, output, TimeSpan.MaxValue);
            }
            Process.Start(new ProcessStartInfo() { FileName = outputFilePath, UseShellExecute = true });
Unplanned
Last Updated: 26 Sep 2025 09:01 by Monali
Created by: Monali
Comments: 0
Category: WordsProcessing
Type: Feature Request
0
Add support for Ink annotations (InkML).
Unplanned
Last Updated: 25 Sep 2025 09:01 by Paul
Tab stop distances are not calculated correctly during PDF export if a hanging indent is applied.
Unplanned
Last Updated: 23 Sep 2025 11:05 by Sandy
Setting transparency to a chart series color results in a corrupted document.
Unplanned
Last Updated: 22 Sep 2025 07:45 by Dmitri
In Development
Last Updated: 18 Sep 2025 13:12 by ADMIN
ArgumentNullException is thrown when importing a restricted, AES-encrypted document.
Unplanned
Last Updated: 15 Sep 2025 13:28 by Tibor
The "w:multiLine" property of a text content control is lost on import-export.
<w:sdt>
  <w:sdtPr>
    <w:text w:multiLine="1"/>
  </w:sdtPr>
  <w:sdtContent>
    <w:r>
      <w:t>Line 1</w:t>
    </w:r>
    <w:r>
      <w:br/>
    </w:r>
    <w:r>
      <w:t>Line 2</w:t>
    </w:r>
  </w:sdtContent>
</w:sdt>
Unplanned
Last Updated: 15 Sep 2025 13:07 by Tibor
Disappearing borders due to "w:val" property changing from "none" to "nil" on import-export.
Unplanned
Last Updated: 15 Sep 2025 11:30 by Steinar
Duplicated
Last Updated: 15 Sep 2025 06:44 by ADMIN

Registering the font used to be enough for resolving the font's characters in .NET Standard

			byte[] fontData = File.ReadAllBytes(".\\files\\cour.ttf");
			FontFamily courierNewFont = new FontFamily("Courier New");
			FontsRepository.RegisterFont(courierNewFont, FontStyles.Normal, FontWeights.Normal, fontData);

However, as of  version 2024.2.426 registering the font doesn't produce the correct result anymore and the text got missing in the PDF fields. When the document is opened in Adobe, the following message appears: 

The FontsProvider works in both versions (before and after 2024.2.426). It is also required to iterate all widgets and apply the font explicitly to the widget.TextProperties.Font property.

Unplanned
Last Updated: 12 Sep 2025 14:49 by Tibor

Import/export strips w:colFirst and w:colLast from table's <w:permStart> elements.

Expected:

Actual:


Unplanned
Last Updated: 12 Sep 2025 13:15 by Martin Ivanov
When the columns are using widths with too precise decimal values (ex: 150.33333333333334), the VisibleRange of ViewportPane reports wrong range in some situations. 

This causes issues when calculating element positions in a custom WorksheetUILayerBase in the context of RadSpreadsheet for WPF.
Unplanned
Last Updated: 10 Sep 2025 12:38 by Giuseppe
Created by: Giuseppe
Comments: 0
Category: SpreadProcessing
Type: Feature Request
0
Add support for the FILTER function.
Unplanned
Last Updated: 05 Sep 2025 08:52 by Alvin

The TextProperties.FontSize property specifies the font size for text fragments. The property is of type double. The measurement unit used for font size in RadPdfProcessing is Device Independent Pixels (DIPs). You can convert it to points or other units using the Unit class.

However, when using the TextProperties with widgets the font conversion is not correct. Let's consider the case that we build a PDF document with a TextBoxField occupying a specific rectangle. According to the set text value, we should calculate the appropriate font size so the whole content can fit in the widget's rectangle.

        /// <summary>
        /// Creates a TextBoxField with calculated font size for the given rectangle
        /// </summary>
        private static TextBoxField CreateTextBoxWithCalculatedFont(string name, string text, Rect rect, double fontSize, FontBase font)
        {
            TextBoxField field = new TextBoxField(name);
       
            field.TextProperties.FontSize = Unit.DipToPoint(fontSize);
            field.TextProperties.Font = font;
            field.Value = text;

            var widget = field.Widgets.AddWidget();
            widget.Rect = rect;
            widget.Border.Width = 0;
            widget.TextProperties.FontSize = Unit.DipToPoint(fontSize); 
            widget.TextProperties.Font = font;

            return field;
        }

        /// <summary>
        /// Calculates the optimal font size for text to fit within a specific rectangle
        /// </summary>
        public static double CalculateFontSizeForRectangle(string text, Rect rect, FontBase font)
        {
            double fontSize = 0;
            Size measuredSize = new Size(0, 0);
            Size availableSize = rect.Size;
            while (measuredSize.Width<availableSize.Width && measuredSize.Height< availableSize.Height)
            {
                fontSize++;
                Block block = new Block();
                block.TextProperties.FontSize = fontSize;
                block.TextProperties.Font = font;
                block.InsertText(text);
                measuredSize = block.Measure();
            }

            return fontSize-1;
        }

            // Example: Wide textbox with calculated font size
            string wideText = "This is a wide textbox that demonstrates horizontal fitting of text content.";
            Rect wideRect = new Rect(200, 500, 400, 30);
            double wideFontSize = CalculateFontSizeForRectangle(wideText, wideRect, font);

            TextBoxField wideTextBoxField = CreateTextBoxWithCalculatedFont("WideTextBox", wideText, wideRect, wideFontSize, font);
            document.AcroForm.FormFields.Add(wideTextBoxField);
            var wideWidget = wideTextBoxField.Widgets.First();
            page.Annotations.Add(wideWidget);
            wideWidget.RecalculateContent();

Unplanned
Last Updated: 03 Sep 2025 13:53 by Tibor

RadFlowDocumentEditor.InsertDocument throws NullReferenceException when inserting a document with incorrectly paired permission range elements.

Valid (Nested):

<w:permStart w:id="1"/>
  <w:permStart w:id="2"/>
    ... content ...
  <w:permEnd w:id="2"/>
<w:permEnd w:id="1"/>

Invalid (Overlapped):

<w:permStart w:id="1"/>
  <w:permStart w:id="2"/>
<w:permEnd w:id="1"/>
  <w:permEnd w:id="2"/>

Workaround - Remove all Permission Ranges before inserting:

var startPermissionRanges = contentDocument.EnumerateChildrenOfType<PermissionRangeStart>().ToList();
var endPermissionRanges = contentDocument.EnumerateChildrenOfType<PermissionRangeEnd>().ToList();

foreach (PermissionRangeStart rangeStart in startPermissionRanges)
{
    rangeStart.Paragraph.Inlines.Remove(rangeStart);
}

foreach (PermissionRangeEnd rangeEnd in endPermissionRanges)
{
    rangeEnd.Paragraph.Inlines.Remove(rangeEnd);
}