Unplanned
Last Updated: 22 Jul 2026 08:27 by ADMIN
Add support for Text Frame Properties on PDF export.
Unplanned
Last Updated: 22 Jul 2026 08:25 by ADMIN
ADMIN
Created by: Yoan
Comments: 0
Category: WordsProcessing
Type: Feature Request
0
Add support for a horizontal line on PDF export.
Unplanned
Last Updated: 29 May 2026 09:00 by Code Ninja
Drawing objects are exported with id="0" after MailMerge. This produces OOXML-invalid document.
Unplanned
Last Updated: 15 May 2026 12:54 by Maks
Created by: Maks
Comments: 0
Category: WordsProcessing
Type: Feature Request
1
RadPdfProcessing already offers exception handling mechanism which allows you to handle unexpected behavior during import/export. Thus, the import/export process skips the problematic part and continues the execution. This would be a great addition to the WordsProcessing model as well. 
Unplanned
Last Updated: 27 Apr 2026 11:53 by Frank
Respect thread culture when formatting dates with the "\@" switch during mail merge.
Unplanned
Last Updated: 20 Apr 2026 06:55 by Mohammad

When importing HTML content to a RadFlowDocument and exporting it to PDF format, the following error message occurs:

System.ArgumentException: 'The document element is associated with another parent. (Parameter 'item')'

   at Telerik.Windows.Documents.Fixed.Model.Collections.DocumentElementCollection`2.VerifyDocumentElementOnInsert(T item)
   at Telerik.Windows.Documents.Core.Data.DocumentElementCollectionBase`2.Add(T item)
   at Telerik.Windows.Documents.Fixed.Model.Editing.FixedContentEditor.Append(PositionContentElement element)
   at Telerik.Windows.Documents.Fixed.Model.Editing.FixedContentEditor.Draw(PositionContentElement element)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Layout.ContentElementLayoutElementBase`1.Draw(DrawLayoutElementContext context)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Block.Draw(IEnumerable`1 lineElements, DrawLayoutElementContext context)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Block.DrawInternal(FixedContentEditor editor, Rect boundingRect)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Block.Draw(FixedContentEditor editor, Rect boundingRect)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Tables.TableCell.Draw(FixedContentEditor editor)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Tables.Table.DrawCellContent(FixedContentEditor editor, TableCell cell)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Tables.Table.DrawTableCells(FixedContentEditor editor, Int32 rowIndex, TableCellCollection cells)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Tables.Table.DrawTableRows(FixedContentEditor editor)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Tables.Table.DrawInternal(FixedContentEditor editor, Rect boundingRect)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Tables.Table.Draw(FixedContentEditor editor, Rect boundingRect)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Tables.TableCell.Draw(FixedContentEditor editor)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Tables.Table.DrawCellContent(FixedContentEditor editor, TableCell cell)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Tables.Table.DrawTableCells(FixedContentEditor editor, Int32 rowIndex, TableCellCollection cells)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Tables.Table.DrawTableRows(FixedContentEditor editor)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Tables.Table.DrawInternal(FixedContentEditor editor, Rect boundingRect)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Tables.Table.Telerik.Windows.Documents.Fixed.Model.Editing.Flow.IDrawArrangedElement.DrawArrangedElement(FixedContentEditor editor, Rect boundingRect)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Flow.SectionInfo.DrawArrangedElement(IBlockElement blockElement, Double horizontalOffset, Double verticalOffset)
   at Telerik.Windows.Documents.Fixed.Model.Editing.Utils.SectionInfoExtensions.DrawArrangedElements(SectionInfo section, IList`1 elements)
   at Telerik.Windows.Documents.Fixed.Model.Editing.RadFixedDocumentEditor.Draw()
   at Telerik.Windows.Documents.Fixed.Model.Editing.RadFixedDocumentEditor.StartNewPage(SectionProperties sectionProperties)
   at Telerik.Windows.Documents.Fixed.Model.Editing.RadFixedDocumentEditor.StartNewPage()
   at Telerik.Windows.Documents.Fixed.Model.Editing.RadFixedDocumentEditor.AddBlock(IBlockElement blockElement, CancellationToken cancellationToken)
   at Telerik.Windows.Documents.Flow.FormatProviders.Pdf.Export.PdfExporter.ExportSection(Section section, RadFixedDocumentEditor editor)
   at Telerik.Windows.Documents.Flow.FormatProviders.Pdf.Export.PdfExporter.ExportDocument(RadFlowDocument document, RadFixedDocumentEditor editor)
   at Telerik.Windows.Documents.Flow.FormatProviders.Pdf.Export.PdfExporter.ExportInternal()
   at Telerik.Windows.Documents.Flow.FormatProviders.Pdf.Export.PdfExporter.Export()
   at Telerik.Windows.Documents.Flow.FormatProviders.Pdf.PdfFormatProvider.ExportToFixedDocument(RadFlowDocument document, CancellationToken cancellationToken)
   at Telerik.Windows.Documents.Flow.FormatProviders.Pdf.PdfFormatProvider.ExportOverride(RadFlowDocument document, Stream output, CancellationToken cancellationToken)
   at Telerik.Windows.Documents.Common.FormatProviders.FormatProviderBase`1.Export(T document, Stream output, Nullable`1 timeout)
   at _1713205HtmlToPdf.Program.Main(String[] args) in C:\Users\dyordano\OneDrive - Progress Software Corporation\MyProjects\1713205HtmlToPdf\Program.cs:line 46
Unplanned
Last Updated: 01 Apr 2026 13:10 by Jitendra
Unplanned
Last Updated: 02 Mar 2026 16:00 by Wes
Created by: Wes
Comments: 0
Category: WordsProcessing
Type: Feature Request
1
Add support for AutoTextList field.
Unplanned
Last Updated: 23 Dec 2025 10:20 by Pallav
Created by: Pallav
Comments: 0
Category: WordsProcessing
Type: Feature Request
1
Add support for images as list bullets.
Unplanned
Last Updated: 05 Dec 2025 08:35 by David
PdfFormatProvider: Incorrect column width for tableGrid tables with merged cells.
Unplanned
Last Updated: 17 Oct 2025 15:03 by Mira
Created by: Mira
Comments: 0
Category: WordsProcessing
Type: Feature Request
1
Add support for Fields when exporting to TXT format. When a field is exported to *.txt, only the result should be exported (as in HTML). In the current implementation, the field characters, field code, and field result are all exported.
Unplanned
Last Updated: 17 Oct 2025 06:28 by Daniel
Created by: Daniel
Comments: 0
Category: WordsProcessing
Type: Feature Request
2
Optimize PDFs for quick viewing on the web, especially for mobile clients. Linearization allows your end users to view large PDF documents incrementally so that they can view pages much faster in lower bandwidth conditions: https://developer.adobe.com/document-services/docs/overview/pdf-services-api/howtos/linearize-pdf/ 
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: 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: 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: 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);
}

 

 

Unplanned
Last Updated: 21 Aug 2025 07:39 by Matt
Unplanned
Last Updated: 28 Jul 2025 05:39 by Nathan

Paragraphs with a bulleted "Normal" style, but with bullets removed inline, revert to showing bullets after import/export with Telerik Document Processing (DPL)—is not the intended behavior. Inline overrides, such as manually removing bullets from specific paragraphs, should be preserved after processing:

 

Unplanned
Last Updated: 11 Jul 2025 09:57 by Jennifer
This is the code for generating the document from scratch: 
        static void Main(string[] args)
        {
          
            Telerik.Windows.Documents.Flow.Model.RadFlowDocument document = CreateDocument();
            Telerik.Windows.Documents.Flow.FormatProviders.Docx.DocxFormatProvider provider = new Telerik.Windows.Documents.Flow.FormatProviders.Docx.DocxFormatProvider();
            string outputFilePath = "output.docx";
            File.Delete(outputFilePath);

            using (Stream output = File.OpenWrite(outputFilePath))
            {
                provider.Export(document, output, TimeSpan.FromSeconds(10));
            } 

            Process.Start(new ProcessStartInfo() { FileName = outputFilePath, UseShellExecute = true });
        }

        //Not working example
        private static RadFlowDocument CreateDocument()
        {
            int FullPercentWidth = 100;
            var document = new RadFlowDocument();
            var editor = new RadFlowDocumentEditor(document);

            editor.InsertSection();

            var header = document.Sections.First().Headers.Add().Blocks.AddParagraph();
            header.TextAlignment = Alignment.Center;

            editor.MoveToParagraphStart(header);
            editor.InsertLine("Dissemination Label");

            var br = new Break(document);
            header.Inlines.Add(br);

            editor.MoveToParagraphEnd(header);
            editor.InsertText("Test");

            editor.MoveToParagraphStart(document.Sections.First().Blocks.AddParagraph());

            editor.InsertParagraph();
            editor.InsertLine("First Header");
            editor.InsertLine("Second Header");

            editor.TableFormatting.StyleId = BuiltInStyleNames.TableGridStyleId;
            document.StyleRepository.AddBuiltInStyle(BuiltInStyleNames.TableGridStyleId);

            Table table = editor.InsertTable();
            table.PreferredWidth = new TableWidthUnit(TableWidthUnitType.Percent, FullPercentWidth);
            table.LayoutType = TableLayoutType.AutoFit;

            TableRow headerRow = table.Rows.AddTableRow();

            var cell = headerRow.Cells.AddTableCell();
            var cellParagraph = cell.Blocks.AddParagraph();
            _ = cellParagraph.Inlines.AddRun("ID");

            var cell2 = headerRow.Cells.AddTableCell();
            var cellParagraph2 = cell2.Blocks.AddParagraph();
            _ = cellParagraph2.Inlines.AddRun("Title");

            var cell3 = headerRow.Cells.AddTableCell();
            var cellParagraph3 = cell3.Blocks.AddParagraph();
            _ = cellParagraph3.Inlines.AddRun("Page Number");

            for (var i = 0; i < 3; i++)
            {
                var dataRow = table.Rows.AddTableRow();

                string id = "ID-" + i;

                var cell4 = dataRow.Cells.AddTableCell();
                var cellParagraph4 = cell4.Blocks.AddParagraph();
                _ = cellParagraph4.Inlines.AddRun(id);

                var cell5 = dataRow.Cells.AddTableCell();
                var cellParagraph5 = cell5.Blocks.AddParagraph();
                _ = cellParagraph5.Inlines.AddRun($"Fake Title {i}");

                var cell6 = dataRow.Cells.AddTableCell();
                var cellParagraph6 = cell6.Blocks.AddParagraph();
                editor.MoveToParagraphStart(cellParagraph6);
                editor.InsertField($"PAGEREF bookmark-{id}", string.Empty);
            }

            for (var i = 0; i < 3; i++)
            {
                var id = "ID-" + i;

                var section = document.Sections.AddSection();

                section.SectionType = SectionType.NextPage;

                var header2 = document.Sections.Count == 1
                    ? document.Sections.AddSection().Headers.Add().Blocks.AddParagraph()
                    : document.Sections.Last().Headers.Add().Blocks.AddParagraph();

                editor.MoveToParagraphStart(header2);
                editor.InsertLine("Dissemination Label");
                editor.InsertBreak(BreakType.LineBreak);

                editor.InsertLine("Fake Header");
                editor.InsertText("Display name");

                var table2 = new Table(document)
                {
                    PreferredWidth = new TableWidthUnit(TableWidthUnitType.Percent, FullPercentWidth),
                    LayoutType = TableLayoutType.AutoFit
                };

                var headerRow2 = table2.Rows.AddTableRow();

                headerRow2.CanSplit = false;

                var headerCell = headerRow2.Cells.AddTableCell();
                var headerParagraph = headerCell.Blocks.AddParagraph();

                headerParagraph.Inlines.AddRun("Title").FontWeight = FontWeights.Bold;
                headerParagraph.Spacing.SpacingAfter = 0;

                headerCell.ColumnSpan = 3;

                table2.LayoutType = TableLayoutType.FixedWidth;

                var row = InsertRow(table2);

                var cell7 = row.Cells.AddTableCell();
                var cellParagraph7 = cell7.Blocks.AddParagraph();
                _ = cellParagraph7.Inlines.AddRun("Stuff and things");

                var cell8 = row.Cells.AddTableCell();
                var cellParagraph8 = cell8.Blocks.AddParagraph();
                _ = cellParagraph8.Inlines.AddRun($"Stuff and things-{id}");
                editor.InsertBookmark($"bookmark-{id}");

                _ = InsertRow(table2);
                _ = InsertRow(table2);

                document.Sections.Last().Blocks.Add(table2);

                var table3 = new Table(document)
                {
                    PreferredWidth = new TableWidthUnit(TableWidthUnitType.Percent, FullPercentWidth),
                    LayoutType = TableLayoutType.AutoFit
                };

                var fakeText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed laoreet finibus nulla sit amet consectetur. Fusce dignissim sapien congue augue hendrerit, eu rutrum orci lacinia. Maecenas sit amet augue ut arcu consequat molestie ac pretium nulla. Donec venenatis rhoncus pulvinar. Aliquam vel est vitae lacus porta aliquam. Morbi aliquet vulputate turpis, ut vulputate elit accumsan at. Vivamus interdum dictum arcu vel euismod. Curabitur commodo eu nisi ut ultrices. Duis at auctor eros. Vivamus et metus ligula. Vestibulum feugiat velit a feugiat sodales. Sed vitae urna sodales, faucibus felis non, sagittis diam.\r\n\r\nPraesent turpis est, aliquet consectetur felis et, pharetra placerat ipsum. Sed at consectetur metus. Integer dictum iaculis libero, interdum vehicula ipsum convallis a. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pretium ac quam id finibus. Maecenas bibendum magna vel rhoncus eleifend. Etiam nec ante nulla. Etiam lacinia vulputate quam, et ullamcorper magna fermentum quis. Suspendisse potenti. Quisque quis nulla non velit lacinia laoreet. Fusce et lacinia enim, sit amet rhoncus eros. Etiam placerat fringilla nibh ac commodo.\r\n\r\nMorbi ac commodo elit. Sed a leo quis sem convallis volutpat eget et nunc. In laoreet eleifend ullamcorper. Phasellus pharetra molestie eleifend. Cras consequat risus ac est accumsan sagittis. Suspendisse facilisis ultrices ipsum, vitae porttitor augue tincidunt ac. Ut sagittis nisl tristique efficitur aliquam. Pellentesque molestie mauris id ipsum lacinia, a vehicula eros molestie. Aliquam quis sagittis tellus.";

                for (var j = 0; j < 2; j++)
                {
                    var row2 = InsertRow(table3);
                    var cell9 = row2.Cells.AddTableCell();
                    var cellParagraph9 = cell9.Blocks.AddParagraph();
                    _ = cellParagraph9.Inlines.AddRun(fakeText);
                }

                document.Sections.Last().Blocks.Add(table3);
            }

            FlowExtensibilityManager.NumberingFieldsProvider = new NumberingFieldsProvider();
            foreach (var s in document.Sections)
            {
                 s.Footers.Add();
                Footer f = s.Footers.Default;

                Paragraph paragraph = f.Blocks.AddParagraph();
                paragraph.TextAlignment = Alignment.Right;

                editor.MoveToParagraphStart(paragraph);

                editor.InsertText("Page ");
                editor.InsertField("PAGE", string.Empty);
                editor.InsertText(" of ");
                editor.InsertField("NUMPAGES", string.Empty);

                var paragrpah2 = s.Blocks.AddParagraph();
                editor.MoveToParagraphStart(paragrpah2);
            }



            document.UpdateFields();

            return document;
        }
        private static TableRow InsertRow(Table table)
        {
            TableRow row = new TableRow(table.Document);
            table.Rows.Add(row);
            return row;
        }
1 2 3 4 5 6