Currently, when using External Stylesheets in the reports, the engine tries to first load the stylesheet as an embedded resource of the assembly. If it fails to load it from the assembly, a message is written to the trace along the lines of:
ESS: Attempt to load ExternalStyleSheet from EmbeddedResource from assembly Telerik.Reporting, Version=19.0.25.211 with resource name styles.xml is unsuccessful.
After this, the engine will try other ways to resolve the stylesheet such as from URI and if it succeeds, the report will render as expected.
This can create confusion because looking at the trace, one might think that there were errors with the rendering of the report because the stylesheet did not load but it was actually successfully loaded with one of the other approaches.
It would be better to write the errors to the trace only if the stylesheet does not load after all attempts.
We have successfully downloaded and installed Google Open Sans fonts (from the URL: https://fonts.google.com/specimen/Open%20Sans#:~:text=Open%20Sans%20is%20a%20humanist%20sans%20serif) to a Linux Ubuntu-based Docker container using the following Dockerfile script to install the dependencies and the fonts:
RUN apt-get update && apt-get install -y libfreetype6 libfontconfig1 fontconfig unzip #Google Fonts RUN mkdir -p /usr/share/fonts/truetype/googlefonts && cd /usr/share/fonts/truetype/googlefonts COPY ["Open_Sans.zip", "/usr/share/fonts/truetype/googlefonts"] RUN unzip -d /usr/share/fonts/truetype/googlefonts /usr/share/fonts/truetype/googlefonts/Open_Sans.zip RUN rm -f Open_Sans.zip RUN ls -al /usr/share/fonts/truetype/googlefonts RUN fc-cache -fv RUN fc-match OpenSans
Open_Sans.zip file should be in the solution folder when running the Docker from Visual Studio.
The fonts are displayed as expected when previewing in the browser. When exporting to PDF though, the Reporting engine throws the following exception when Open Sans font is used:
CSharp.Net8.Html5IntegrationDemo Error: 0 : System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Telerik.Reporting.Pdf.Fonts.TrueType.TrueTypeCollectionHeader.Read(FontReader fontReader)
at Telerik.Reporting.Pdf.Fonts.TrueType.TrueTypeCollectionHeaderVersion2.Read(FontReader fontReader)
at Telerik.Reporting.Pdf.Fonts.TrueType.FontCollectionProgram.Decompile()
at Telerik.Reporting.Pdf.Fonts.TrueType.FontCollectionProgram.EnsureFonts()
at Telerik.Reporting.Pdf.Fonts.TrueType.FontCollectionProgram.get_Fonts()
at Telerik.Reporting.Pdf.Fonts.TrueType.FontCollectionProgram.SelectFontProgram(String fontName, String fontFamily, Boolean bold, Boolean italic, Boolean underline, Boolean strikeout)
at Telerik.Reporting.Pdf.Fonts.TrueType.TrueTypeDescriptor..ctor(IFont engineFont)
at Telerik.Reporting.Pdf.Fonts.TrueType.TrueTypeDescriptor..ctor(PdfFont font)
at Telerik.Reporting.Pdf.PdfFontTable.GetDescriptor(PdfFont font)
at Telerik.Reporting.Pdf.PdfFontDictionary..ctor(PdfDocument document, PdfFont drawingFont)
at Telerik.Reporting.Pdf.PdfFontType0Dictionary..ctor(PdfDocument document, PdfFont font)
at Telerik.Reporting.Pdf.PdfFontTable.GetFont(PdfFont font)
at Telerik.Reporting.Pdf.PdfPageDictionary.GetFontName(PdfFont font, PdfFontDictionary& fontDictionary)
at Telerik.Reporting.Pdf.Rendering.PdfRenderer.GetFontName(PdfFont font, PdfFontDictionary& fontDictionary)
at Telerik.Reporting.Pdf.Rendering.PdfRendererGraphicsState.Update(PdfFont font, IBrush brush, Int32 renderMode)
at Telerik.Reporting.Pdf.Rendering.PdfRenderer.Update(PdfFont pdfFont, IBrush brush, Int32 renderMode)
at Telerik.Reporting.Pdf.Rendering.PdfRenderer.DrawString(String text, PdfFont pdfFont, IBrush brush, RectangleF rect, Boolean rightToLeft)
at Telerik.Reporting.Pdf.Drawing.PdfGraphics.DrawString(String s, IFont font, IBrush brush, RectangleF rect, StringFormatBase format)
at Telerik.Reporting.ImageRendering.CanvasPdf.DrawRegularChunk(String text, StringChunkContext context)
at Telerik.Reporting.ImageRendering.CanvasBase.DrawStringChunk(String s, StringChunkContext context)
at Telerik.Reporting.ImageRendering.CanvasBase.DrawStringMultiline(String s, StringChunkContext context, Boolean isFinalTextChunk)
at Telerik.Reporting.ImageRendering.DocumentBase.WriteText(String text, RectangleF bounds, IFont font, Color foreground, TextFormat format, MatrixBase transform, Boolean isFinalTextChunk)
at Telerik.Reporting.Writing.TextBoxWriter.WriteContent(DocumentWriter writer, TextBox textBox, ElementPageInfo pageInfo)
at Telerik.Reporting.Writing.ProcessingContentElementWriter`1.WriteElement(T element, ElementPageInfo pageInfo, DocumentWriter writer)
at Telerik.Reporting.Writing.ProcessingElementWriter`1.Write(T element, ElementPageInfo pageInfo, DocumentWriter writer)
at Telerik.Reporting.Writing.ElementWriter`1.Telerik.Reporting.Writing.IElementWriter.StartWrite(LayoutElement element, ElementPageInfo pageInfo, DocumentWriter writer)
at Telerik.Reporting.Writing.WriteStartOperationsDispatcher.Write(IElementWriter writer, LayoutElement element, ElementPageInfo pageInfo, DocumentWriter documentWriter)
at Telerik.Reporting.Writing.WriteOperationsDispatcher.Write(IElementWriter writer, LayoutElement element)
at Telerik.Reporting.Writing.WriteOperationsDispatcher.Visit(TextBox textBox)
at Telerik.Reporting.Processing.TextBox.Accept(ProcessingElementVisitor visitor)
at Telerik.Reporting.Processing.ProcessingElementVisitor.Visit(LayoutElement element)
at Telerik.Reporting.Writing.WriteOperationsDispatcher.DispatchWriteOperation(LayoutElement element, ElementPageInfo pageInfo)
at Telerik.Reporting.Writing.DocumentWriter.Telerik.Reporting.BaseRendering.IWriter.WriteStartElement(LayoutElement element, ElementPageInfo pageInfo)
at Telerik.Reporting.BaseRendering.PageHandler.Telerik.Reporting.Paging.IPageHandler.StartElement(LayoutElement element, ElementPageInfo info)
at Telerik.Reporting.Paging.PageStartElement.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()
CSharp.Net8.Html5IntegrationDemo Error: 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)
The same report with the same fonts is rendered successfully on Windows with the Standalone Report Designer for .NET 8 with both GDI and Skia graphics engines.
Watermark Images with higher than the report rendering DPI are displayed clipped in PPTX rendering.
In PDF, preview of the designers and DOCX the same watermark is shown as expected.
If the DPI of the image is 96 as the default Windows machine DPI used for rendering, the Watermark is displayed correctly also in PPTX.
If I use an HTML5-based Report Viewer with the default CONTINUOUS_SCROLL page mode and I start scrolling to the next page, the Get Document Page request is made multiple times for the same page.
If I move to the next page via the toolbar buttons or if I use the SINGLE_PAGE page mode, then problem is not reproduced.
To reproduce, use online web designer demos with Employee Sales Summary.trdx report.
Check the video https://go.screenpal.com/watch/cTfDlNnj4I1.
Expected: opens the main report
Observed: In design you see the second report
Additionally, the URL to the second report is absolute rather than relative path - the issue logged in Full system-path being used by REST Service as reference when linked by a 'Navigate To Report' action
Reproducible in 17.1.23.606 - SRD .NET6
Steps to reproduce the behavior:
Expected behavior
No exceptions
Actual behavior
Table Body has 9 rows but 3 are expected.
Screenshots
Screenshot
Images taken with a mobile device are sometimes displayed in PictureBox rotated by 90, 180 or 270 degrees. The reason is that whenever a photo is taken, the device saves its current accelerometer orientation into a corresponding Exif tag with the image metadata, so this info is then read and taken into account by our Report Designer.
In the standalone designer, it would be helpful if you could drag and drop the column headers to reorder. At present you have to add a new column and delete the old one, remembering to copy all properties.
I have successfully installed the ODBC and OLEDB providers for Visual FoxPro 9 and they appear in the Windows 32-bit ODBC Data Sources under System DSN.
The drivers are discovered when I use Standalone Report Designer x86 from 17.2.23.1114 and older ones built against .NET Framework 4.0.
The same drivers are not found on the same machine when I use Standalone Report Designer x86 from 18.3.24.1218 built against .NET Framework 4.6.2.
I set globally the culture on the Linux Ubuntu Docker Container. Interestingly, the negative currency with en-US and fr-CA was displayed with the '-' sign rather than in brackets.
This was reproduced even in the values set with the Text Function FormatWithCulture(cultureName, format, args). The function displayed wrong formatting also on Windows, even in the Standalone Report Designer for .NET 8.
When the global culture on Windows was en-US, the negative decimal value formatted without the FormatWithCulture function was displayed correctly in .NET 8.
In the .NET Framework, the negative currencies were displayed as expected in all scenarios.
I have linked also a muted video showing the issue.
In the latest Reporting version, the interface of the report viewer allows users to set the value of a multiselect report parameter to an empty collection but not make it null.
In some scenarios, reports rely on parameters being null to filter their data and this makes them unusable in the latest version.
In Telerik Reporting versions before 18.1.24.514, I could change the order of items in a section by dragging an item up or down in the Report Explorer list.
If I try that now, nothing seems to happen on the screen. Dragging does not appear to change the position of an item in Report Explorer; the item appears to be fixed in place. However, if I close the report and reopen it, the position of the item may have changed.
The same happens if I use Send To Back/Brink to Front on an item. The new item position is not updated in the Report Explorer.
Password-protected PDF documents generated with Telerik Reporting have blank pages when opened with an iPhone.
After updating the Reporting version to v18, some error messages display the <br /> HTML element as text in the HTML5 Report Viewer. The issue was not present in v17.