When certain fonts are used, the text of reports exported to PDF looks different between the Skia and GDI rendering engines, even if the fonts are fully embedded.
For example, if the TT Norms font is used and the report is exported to PDF (full font embedding) with both engines, the document rendered by Skia is much larger and looks different than the GDI-rendered document.
Since upgrade to openXML 3.0.0 we get exceptions at runtime when we want to create a report in XLS.
While a feature request has been filed here: https://feedback.telerik.com/reporting/1631967-openxml-renderings-should-work-with-documentformat-openxml-3-0-0-and-newer one could argue it is a bug. Anyway, i raise this issue here to have some extra attention to it.
System.TypeLoadException
HResult=0x80131522
Message=Could not load type 'DocumentFormat.OpenXml.Packaging.ImagePartType' from assembly 'Telerik.Reporting.OpenXmlRendering.2.7.2, Version=17.2.23.1114, Culture=neutral, PublicKeyToken=a9d7983dfcc261be' due to value type mismatch.
Source=Telerik.Reporting.OpenXmlRendering.2.7.2
StackTrace:
at Telerik.Reporting.OpenXmlRendering.Spreadsheet.Worksheet..ctor(Workbook workbook, WorksheetPart worksheetPart)
at Telerik.Reporting.OpenXmlRendering.Spreadsheet.Workbook.AddWorksheet()
at Telerik.Reporting.ExcelRendering.Report.Render(IWorkbook workbook)
at Telerik.Reporting.OpenXmlRendering.Spreadsheet.SpreadsheetReport.Telerik.Reporting.Processing.IRenderingExtension.Render(Report report, Hashtable renderingContext, Hashtable deviceInfo, CreateStream createStreamCallback, EvaluateHeaderFooterExpressions evalHeaderFooterCallback)
at Telerik.Reporting.Processing.ReportProcessor.RenderCore(ExtensionInfo extensionInfo, IList`1 processingReports, Hashtable deviceInfo, IRenderingContext renderingContext, CreateStream createStreamCallback)
at Telerik.Reporting.Processing.ReportProcessor.ProcessAndRender(String format, ReportSource reportSource, Hashtable deviceInfo, IRenderingContext renderingContext, CreateStream createStreamCallback)
at Telerik.Reporting.Processing.ReportProcessor.ProcessAndRenderStateless(String format, ReportSource reportSource, Hashtable deviceInfo, IRenderingContext renderingContext, CreateStream createStreamCallback)
at Telerik.Reporting.Processing.ReportProcessor.<>c__DisplayClass47_0.<RenderReport>b__0(SingleStreamManager sm)
at Telerik.Reporting.Processing.ReportProcessor.RenderReportSafe(Func`2 renderCallback, String format, IRenderingContext renderingContext)
at Telerik.Reporting.Processing.ReportProcessor.RenderReport(String format, ReportSource reportSource, Hashtable deviceInfo, CancellationToken cancellationToken)
at Telerik.Reporting.Processing.ReportProcessor.RenderReport(String format, ReportSource reportSource, Hashtable deviceInfo)
at Indato.Reporting.TelerikReports.<>c__DisplayClass1_0.<RenderReportAsync>b__0() in C:\Users\leosiepel\Source\Workspaces\Indato\Indato-Main\Indato.Reporting\TelerikReports.cs:line 42
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
The Standalone Report Designer allows users to add Anchoring to an item even if its container has KeepTogether set to False. This is not valid and can break report definitions without a warning.
The reports can be fixed by editing the XML code of the definition manually and setting the KeepTogether property to True.
Conditional formatting property already exists in Telerik.Reporting.LegendItem class however does not exist on Telerik.Reporting.GraphLegend.
Would be great to have a ConditionalFormatting property into the Telerik.Reporting.GraphLegend to allows to perform bindings on this element.
Exemple of use case not possible currently: Bind the GraphLegend.Position property with an expression.
When I try to export a ReportBook to TIFF as explained in Exporting a report to a multi-document format, I receive an exception related to the file '.../report/image.tif' that cannot be created.
When I create the folder '.../report', there is another exception message:
'The process cannot access the file '...\report\image.tif' because it is being used by another process.'
The above error was thrown the second time the ReportProcessor tried to access the 'CreateStream' method from the code snippet in the above article. The 'image.tif' file is created and contains only the first report from the ReportBook.
With version 15.0.21.112 the last exception is not thrown and the 'image.tif' file contains all reports from the ReportBook.
The OpenXML renderings in .NET work with DocumentFormat.OpenXml 2.7.2 - 2.20.0
When upgrading to version 3.0.0 the Word rendering throws the following exception:
CSharp.Net7.Html5IntegrationDemo Error: 0 : System.TypeInitializationException: The type initializer for 'Telerik.Reporting.OpenXmlRendering.Wordprocessing.DocumentHelper' threw an exception.
---> System.TypeLoadException: Could not load type 'DocumentFormat.OpenXml.Packaging.ImagePartType' from assembly 'Telerik.Reporting.OpenXmlRendering.2.7.2, Version=17.2.23.1114, Culture=neutral, PublicKeyToken=a9d7983dfcc261be' due to value type mismatch.
at Telerik.Reporting.OpenXmlRendering.Wordprocessing.DocumentHelper..cctor()
--- End of inner exception stack trace ---
at Telerik.Reporting.OpenXmlRendering.Wordprocessing.DocumentHelper.CreateMainPart(WordprocessingDocument package)
at Telerik.Reporting.OpenXmlRendering.Wordprocessing.DocumentBuilder.CreateMainPart()
at Telerik.Reporting.OpenXmlRendering.Wordprocessing.DocumentBuilder.CreateBodyLayout()
at Telerik.Reporting.OpenXmlRendering.Wordprocessing.ReportWriter.WriteDocument(DocumentBuilder documentBuilder, LayoutElement layoutElement)
at Telerik.Reporting.OpenXmlRendering.Wordprocessing.WordprocessingWriter.WriteEndElement(LayoutElement source, ElementPageInfo pageInfo)
at Telerik.Reporting.BaseRendering.PageHandler.Telerik.Reporting.Paging.IPageHandler.EndElement(LayoutElement element, ElementPageInfo info)
at Telerik.Reporting.Paging.PageEndElement.OutputToPage(IPageHandler handler)
at Telerik.Reporting.Paging.PageElementsLayer.OutputToPage(IPageHandler handler)
at Telerik.Reporting.Paging.PageContent.Output(IPageHandler handler)
at Telerik.Reporting.Paging.PageCompositionBase.OutputPageContent(Stopwatch stopwatchOutputContent, PageContent pageContent)
at Telerik.Reporting.Paging.PageCompositionBase.<>c__DisplayClass124_0.<CreatePageContentOutputTask>b__0()
An error has occurred while rendering the report: System.OperationCanceledException: The operation was canceled.
at System.Threading.CancellationToken.ThrowOperationCanceledException()
at System.Threading.ManualResetEventSlim.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.SpinThenBlockingWait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.InternalWaitCore(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.Wait(CancellationToken cancellationToken)
at Telerik.Reporting.Paging.PageCompositionBase.SeparateThreadOutputBehavior.Finish()
at Telerik.Reporting.Paging.PageCompositionBase.CreatePages()
at Telerik.Reporting.Paging.PagerBase.Telerik.Reporting.Paging.IPager.CreatePages(IPageHandler handler, LayoutElement root)
at Telerik.Reporting.BaseRendering.RenderingExtensionBase.Render(LayoutElement root, Hashtable renderingContext, Hashtable deviceInfo, CreateStream createStreamCallback, EvaluateHeaderFooterExpressions evalHeaderFooterCallback, PageSettings pageSettings)
*** Render Report #0 "ReportCatalog" DONE in 00:00:00.2183346 ***
CSharp.Net7.Html5IntegrationDemo Error: 0 : An error occurred while rendering the report in separate thread: System.OperationCanceledException: The operation was canceled.
at System.Threading.CancellationToken.ThrowOperationCanceledException()
at System.Threading.ManualResetEventSlim.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.SpinThenBlockingWait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.InternalWaitCore(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.Wait(CancellationToken cancellationToken)
at Telerik.Reporting.Paging.PageCompositionBase.SeparateThreadOutputBehavior.Finish()
at Telerik.Reporting.Paging.PageCompositionBase.CreatePages()
at Telerik.Reporting.Paging.PagerBase.Telerik.Reporting.Paging.IPager.CreatePages(IPageHandler handler, LayoutElement root)
at Telerik.Reporting.BaseRendering.RenderingExtensionBase.Render(LayoutElement root, Hashtable renderingContext, Hashtable deviceInfo, CreateStream createStreamCallback, EvaluateHeaderFooterExpressions evalHeaderFooterCallback, PageSettings pageSettings)
at Telerik.Reporting.BaseRendering.RenderingExtensionBase.Render(Report report, Hashtable renderingContext, Hashtable deviceInfo, CreateStream createStreamCallback, EvaluateHeaderFooterExpressions evalHeaderFooterCallback)
at Telerik.Reporting.Processing.ReportProcessor.RenderCore(ExtensionInfo extensionInfo, IList`1 processingReports, Hashtable deviceInfo, IRenderingContext renderingContext, CreateStream createStreamCallback)
at Telerik.Reporting.Processing.ReportProcessor.RenderCore(String format, IList`1 reports, Hashtable deviceInfo, IRenderingContext renderingContext, CreateStream createStreamCallback)
at Telerik.Reporting.Services.Engine.ReportRenderer.Render(ReportRendererArgs args)
at Telerik.Reporting.Services.Engine.Rendering.RenderWithCulture(ReportRendererArgs args)
at Telerik.Reporting.Services.Engine.Rendering.ThreadFunc(Object o)
I would prefer my OpenXML rendering to work with the latest DocumentFormat.OpenXml version.
Requesting a feature to allow some sort of selection feature on the "Send Mail Dialog". The issue that we're having is if the user needs to email a report to 5 or 10 people it becomes very daunting, ugly and difficult for them to achieve this without making errors in typing out every single email.
Also, in most cases the user might not know the individuals email official email address in the organization so they have to go look up every single one. If there was a drop down selection or an auto predict while typing then once clicked it grouped up the name to make it look cleaner and easier for them to find the email addresses that would be wonderful. Here's an example of what it looks like right now.
The report processing is stopped and the following message is shown when trying to preview a report that uses one of the available DataDirect drivers in a .NET Core application.

The same report can be previewed successfully in a .NET Framework application.
When editing a report that has a watermark of type BackgroundOverlay with Sizing set to TopLeft, the design time preview of the watermark does not scale with the zoom level correctly.
The preview displays correctly only at 100% zoom level.
Telerik.Reporting.Services.HttpClient version
17.2.23.1114
references a bad version of
Microsoft.IdentityModel.Clients.ActiveDirectory
That has inconsistent references as can been seen from this error (from System.Private.DataContractSerialization 4.1.1)
##[error]src\Cms.Wpf\Cms.Wpf\Cms.Wpf.csproj(0,0): Error NU1605: Warning As Error: Detected package downgrade: System.Text.Encoding.Extensions from 4.3.0 to 4.0.11. Reference the package directly from the project to select a different version. Demurrage -> Telerik.Reporting.Services.HttpClient 17.2.23.1114 -> Microsoft.IdentityModel.Clients.ActiveDirectory 3.14.0 -> System.Runtime.Serialization.Json 4.0.2 -> System.Private.DataContractSerialization 4.1.1 -> System.Xml.ReaderWriter 4.0.11 -> System.IO.FileSystem 4.0.1 -> runtime.win.System.IO.FileSystem 4.3.0 -> System.Text.Encoding.Extensions (>= 4.3.0) Demurrage -> Telerik.Reporting.Services.HttpClient 17.2.23.1114 -> Microsoft.IdentityModel.Clients.ActiveDirectory 3.14.0 -> System.Runtime.Serialization.Json 4.0.2 -> System.Private.DataContractSerialization 4.1.1 -> System.Text.Encoding.Extensions (>= 4.0.11)
This results in a publish failure with .net 8 where warning are treated as errors by default when publishing.
A workaround is to add<NoWarn>NU1605</NoWarn>
I have a Multivalue Report Parameter in the report that gets fed by a data source and may have more than 1000 selectable values. It is a ComboBox.
When I search and select a value from the dropdown, the selected value may not be passed with the reportSource of the viewer if I click directly the Preview button, without clicking outside the selection popup first. The issue occurs randomly. If I click outside the popup first, the values are passed correctly. I cannot reproduce the issue with less selectable items.
We upgrade to 17.2.23.1010 and after going through the report Upgrade Wizard we are getting this error for the CheckBox item:
Error CS0266 Cannot implicitly convert type 'System.Drawing.ContentAlignment' to 'Telerik.Drawing.ContentAlignment'. An explicit conversion exists (are you missing a cast?)
The option for creating a new connection in the SqlDataSource of the WRD is disabled in the .NET Framework implementation of the ReportDesignerController.
When using the SqlDataSource component with a stored procedure that has an IF-ELSE condition which selects a different set of columns depending on whether the condition is true or false, the returned data schema is always as if the condition is evaluated to true.
While the schema is wrong, if I manually type the fields, at runtime, they get resolved correctly but it is inconvenient.
I had a report book with only a TOC report and when I previewed it, I was met with an "Object reference not set to an instance of an object" exception which did not make it clear what was causing the issue losing me a lot of time in debugging.
Once I added a report to my ReportBook the issue was resolved, however, the error message should be more meaningful.
I am rendering Telerik reports (version 17.2.23.1010) with custom code on Linux Docker in .NET 7 with SkiaSharp. When I have Grouping in the Report, I receive the following exception:
An unhandled exception has occurred while executing the request.
System.PlatformNotSupportedException: System.Drawing.Common is not supported on this platform.
at System.Drawing.ToolboxBitmapAttribute..ctor(Type t, String name)
at System.Reflection.CustomAttribute._CreateCaObject(RuntimeModule pModule, RuntimeType type, IRuntimeMethodInfo pCtor, Byte** ppBlob, Byte* pEndBlob, Int32* pcNamedArgs)
at System.Reflection.CustomAttribute.AddCustomAttributes(ListBuilder`1& attributes, RuntimeModule decoratedModule, Int32 decoratedMetadataToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, ListBuilder`1 derivedAttributes)
at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType)
at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeType type, RuntimeType caType, Boolean inherit)
at System.Attribute.GetCustomAttributes(MemberInfo element, Type attributeType, Boolean inherit)
at System.ComponentModel.ReflectTypeDescriptionProvider.ReflectGetAttributes(Type type)
at System.ComponentModel.ReflectTypeDescriptionProvider.ReflectedTypeData.GetAttributes()
at System.ComponentModel.TypeDescriptor.DefaultTypeDescriptor.GetAttributes()
at System.ComponentModel.TypeDescriptor.GetAttributes(Type componentType)
at System.ComponentModel.ReflectTypeDescriptionProvider.ReflectedTypeData.GetConverter(Object instance)
at System.ComponentModel.TypeDescriptor.DefaultTypeDescriptor.GetConverter()
at System.ComponentModel.TypeDescriptor.GetConverter(Type type)
at System.ComponentModel.PropertyDescriptor.get_Converter()
at Telerik.Reporting.Serialization.ObjectReader.ReadProperty(Object obj, PropertyDescriptor prop, Type propType)
at Telerik.Reporting.Serialization.ObjectReader.ReadProperties(Object obj)
at Telerik.Reporting.Serialization.ObjectReader.ReadObject(Type type)
at Telerik.Reporting.Serialization.ObjectReader.ReadXmlElement(String name)
at Telerik.Reporting.Serialization.ObjectReader.ReadCollection(Object collection)
at Telerik.Reporting.Serialization.ObjectReader.ReadProperties(Object obj)
at Telerik.Reporting.Serialization.ObjectReader.ReadObject(Type type)
at Telerik.Reporting.Serialization.ObjectReader.ReadXmlElement(String name)
at Telerik.Reporting.Serialization.ObjectReader.Deserialize(IResourceHandler handler)
at Telerik.Reporting.XmlSerialization.XmlSerializerBase.Deserialize(XmlReader reader, IResourceHandler resourceHandler)
at Telerik.Reporting.XmlSerialization.XmlSerializerBase.Deserialize(Stream stream, IResourceHandler resourceHandler)
at Telerik.Reporting.XmlSerialization.ReportXmlSerializer.Telerik.Reporting.ReportSerialization.IXmlSerializer.Deserialize(Stream stream, IResourceHandler resourceHandler)
at Telerik.Reporting.ReportPackager.UnpackageDocument(Stream packageStream)Without Grouping the report is rendered fine on Linux.
On Windows, everything runs fine as well.