Unplanned
Last Updated: 12 Jul 2024 14:51 by Akesh Gupta

Restrict the TableCellProperties API of a style according to specification.

In Development
Last Updated: 12 Jul 2024 07:07 by ADMIN

In a WPF project targeting .NET 6, the following code snippet results in an error:

        public MainWindow()
        {
            InitializeComponent();

            Telerik.Windows.Documents.Flow.FormatProviders.Html.HtmlFormatProvider provider = new Telerik.Windows.Documents.Flow.FormatProviders.Html.HtmlFormatProvider();
            RadFlowDocument document = provider.Import("<html><body><h1>My First Heading</h1><p>My first paragraph.</p></body></html>");
        }
System.IO.FileNotFoundException: 'Could not load file or assembly 'System.Text.Encoding.CodePages, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.'

Workaround: edit the .csproj file and include the required package reference:

	<ItemGroup>
		<PackageReference Include="Telerik.Windows.Documents.Flow" Version="2024.2.426" />
		<PackageReference Include="System.Text.Encoding.CodePages" Version="7.0.0" />
	</ItemGroup>
	<ItemGroup>
		<FunctionsPreservedDependencies Include="System.Text.Encoding.CodePages.dll" />
	</ItemGroup>

 

 
In Development
Last Updated: 11 Jul 2024 15:19 by ADMIN

When importing a RTF document with bullet lists and exporting the RadFlowDocument back to RTF format the following result is observed:

- the bullet's left offset is changed

- the bullets color is also changed

Workaround: use the Telerik.Windows.Documents.FormatProviders.Rtf.RtfFormatProvider available in the Telerik.Windows.Documents.FormatProviders.Rtf.dll

Unplanned
Last Updated: 10 Jul 2024 05:38 by ADMIN
When table with table border without color set is created (the color is null), and the document is exported to PDF, ArgumentNullException is thrown. 

Workaround: Explicitly set a color where the color is null.
private void PdfExport()
{
	var tables = this.document.EnumerateChildrenOfType<Table>();

	foreach (var table in tables)
	{
		TableBorders coloredClone = this.CopyTableBorders_SetColorWhenOmitted(table);
		table.Borders = coloredClone;
		
		using (Stream output = new FileStream(fileName, FileMode.OpenOrCreate))
		{
			provider.Export(this.document, output);
		}
	}
}

private TableBorders CopyTableBorders_SetColorWhenOmitted(Table table)
{
	var leftBorder = new Border(table.Borders.Left.Thickness,
				  table.Borders.Left.Style,
				  table.Borders.Left.Color ?? new ThemableColor(Colors.Transparent),
				  table.Borders.Left.Shadow,
				  table.Borders.Left.Frame,
				  table.Borders.Left.Spacing);

	var rightBorder = new Border(table.Borders.Right.Thickness,
				  table.Borders.Right.Style,
				  table.Borders.Right.Color ?? new ThemableColor(Colors.Transparent),
				  table.Borders.Right.Shadow,
				  table.Borders.Right.Frame,
				  table.Borders.Right.Spacing);

	var bottomBorder = new Border(table.Borders.Bottom.Thickness,
				table.Borders.Bottom.Style,
				table.Borders.Bottom.Color ?? new ThemableColor(Colors.Transparent),
				table.Borders.Bottom.Shadow,
				table.Borders.Bottom.Frame,
				table.Borders.Bottom.Spacing);

	var topBorder = new Border(table.Borders.Top.Thickness,
				table.Borders.Top.Style,
				table.Borders.Top.Color ?? new ThemableColor(Colors.Transparent),
				table.Borders.Top.Shadow,
				table.Borders.Top.Frame,
				table.Borders.Top.Spacing);

	var insideHorizontalBorder = new Border(table.Borders.InsideHorizontal.Thickness,
			 table.Borders.InsideHorizontal.Style,
			 table.Borders.InsideHorizontal.Color ?? new ThemableColor(Colors.Transparent),
			 table.Borders.InsideHorizontal.Shadow,
			 table.Borders.InsideHorizontal.Frame,
			 table.Borders.InsideHorizontal.Spacing);

	var insideVerticalBorder = new Border(table.Borders.InsideVertical.Thickness,
			table.Borders.InsideVertical.Style,
			table.Borders.InsideVertical.Color ?? new ThemableColor(Colors.Transparent),
			table.Borders.InsideVertical.Shadow,
			table.Borders.InsideVertical.Frame,
			table.Borders.InsideVertical.Spacing);

	var tableBorders = new TableBorders(leftBorder, topBorder, rightBorder, bottomBorder, insideHorizontalBorder, insideVerticalBorder);

	return tableBorders;
}
Unplanned
Last Updated: 09 Jul 2024 10:39 by Smiljan

Center alignment is not respected for list numbering.

Expected:

Actual:

Unplanned
Last Updated: 04 Jul 2024 11:52 by Janson

Latest version 2024.2.426:

Old version 2022.3.906:

Use the following code: 

        static void Main(string[] args)
        {
            Console.WriteLine("Test from 2022.3.906 to 2024.2.426.");
            string html = @"<html>
                <head>
                    <style type=""text/css"">
                            h1 {
                               background-color: red;
                              }
                            #highlight1{
                                background-color: blue;
                             }
                           .highlight2{
                                background-color: yellow;
                             }
                     </style>
                </head>
                <body>
                   <h1>H1 - This Works </h1>
                   <h2 id=""highlight1"">H2 with id selector.  This works too.</h2>
                   <h3 class=""highlight2"">H3 with class selector.  This didn't work</h3>
                </body>
                </html>";

            Telerik.Windows.Documents.Flow.FormatProviders.Html.HtmlFormatProvider html_provider = new Telerik.Windows.Documents.Flow.FormatProviders.Html.HtmlFormatProvider();
            RadFlowDocument document = html_provider.Import(html);

            string html_output = "output.html";
            using (Stream output = File.Create(html_output))
            {

                html_provider.Export(document, output);
            }
            Process.Start(new ProcessStartInfo() { FileName = html_output, UseShellExecute = true });
        }
Unplanned
Last Updated: 28 Jun 2024 14:53 by Anu

When a document with multiple headings ( Heading 1) are imported and then exported, their type from letters is changed to numbers, for example:

Original content: Part A, Part B, Part C

Exported content: Part 1, Part 2, Part 3

In Development
Last Updated: 06 Jun 2024 12:33 by ADMIN
DocFormatProvider: EndOfStreamException when importing document with specific image.
Unplanned
Last Updated: 05 Jun 2024 15:01 by Thomas
When the document contains a big image that almost doesn't fit on the page and it is followed by an empty paragraph to generate a blank page with the footer in the DOCX file leads to losing the empty page in the exported PDF.
Unplanned
Last Updated: 28 May 2024 10:20 by Anu

The generated document looks OK before printing:

However, hitting the print preview button in MS Words leads to missing text in the fields:

Unplanned
Last Updated: 21 May 2024 08:26 by ADMIN
AngleSharp.Dom.DomException when importing a file with CSS style that starts with ".\!".
Unplanned
Last Updated: 17 May 2024 08:29 by Vyacheslav
Unplanned
Last Updated: 17 May 2024 07:49 by Vyacheslav
In Development
Last Updated: 16 May 2024 15:55 by ADMIN

The hanging indent of the paragraph affects the rendering of content with tabs. However, the indent is not respected while generating the PDF, leading to disordered content.

Workaround: Insert a tab stop with the position set to the value for hanging indent:

foreach (var paragraph in this.flowDocument.EnumerateChildrenOfType<Paragraph>())
{
    if (paragraph.Properties.HangingIndent.HasLocalValue)
    {
        Run run = paragraph.EnumerateChildrenOfType<Run>().Where(r => r.Text == "\t").FirstOrDefault();

        if (run != null)
        {
            paragraph.TabStops = paragraph.TabStops.Insert(new Telerik.Windows.Documents.Flow.Model.Styles.TabStop(paragraph.Properties.HangingIndent.LocalValue.Value));
        }

    }
}

In Development
Last Updated: 16 May 2024 08:29 by ADMIN

Wrong exported paragraph indentation when the paragraph is in a table cell.

Workaround: Iterate table`s paragraphs and set the negative indentations to zero:

IEnumerable<Table> tables = this.document.EnumerateChildrenOfType<Table>();
foreach (Table table in tables)
{
	IEnumerable<Paragraph> paragraphs = table.EnumerateChildrenOfType<Paragraph>();
	foreach (Paragraph paragraph in paragraphs)
	{
		if (paragraph.Indentation.LeftIndent < 0)
		{
			paragraph.Indentation.LeftIndent = 0;
		}
	}
}

Unplanned
Last Updated: 15 May 2024 16:13 by Anu
When HTML content is inserted, the formatting is lost if the HTML contains 3 tables in it. However, it is OK if the HTML contains 2 tables only.
Completed
Last Updated: 15 May 2024 06:27 by ADMIN
Release 2024.2.426 (2024 Q2)
NullReferenceException caused by a Hyperlink Field during nested Mail Merge.
Completed
Last Updated: 15 May 2024 06:27 by ADMIN
Release 2024.2.426 (2024 Q2)
The text in the footer remains under the image while drawing the PDF content.
In Development
Last Updated: 15 May 2024 05:47 by ADMIN
The list indentation is wrong when exporting several levels to PDF
In Development
Last Updated: 15 May 2024 05:33 by ADMIN
When a numbered list marker's font is exported to PDF, the resulting PDF file's list marker is not the proper font. The font of the text in the list entries themselves is correct.
1 2 3 4 5 6