In my report, there is a Table with one group and PageBreak set to After for the group. If the property ColumnHeadersPrintOnEveryPage is with the default value False, in Interactive view there are three pages generated, one for each group, which is correct.
If I set ColumnHeadersPrintOnEveryPage to True, the number of pages increases to four in the Interactive view mode. There is an additional page break introduced in the last group.
Change the Font Name of a TextBox from Arial to Calibri
Go to another TextBox and change the Font Name from Arial to Calibri.
This is the error I get: "Could not change the property 'Name'. Name 'Calibri' already exists."
The same error occurs when trying to change multiple TextBoxes at once.
If you open https://demos.telerik.com/reporting/designer?_ga=2.145120566.369274565.1605642252-790264781.1600201366 the problem can be seen.
Select one of the TextBoxes such as TextBox1
Select the Layout > Size Properties of the TextBox
Try to change the Width to 3.5 in.
Notice the Width goes to 35 instead of 3.5
This is the same case for Location > Left & Top and Size > Height
Hello,
I am working on Blazor reporting project and I have described the situation already in this post:
https://www.telerik.com/forums/report-viewer-and-web-designer-in-blazor#zGr6FO2mDEmkfLWIP_T_9A
To sum it up:
Please add .NET 5 js/css isolation to Blazor ReportViewer which will allow:
I am rendering a report with multiple large images in PDF. The rendering fails with the following error:
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.IO.MemoryStream.set_Capacity(Int32 value)
at System.IO.MemoryStream.EnsureCapacity(Int32 value)
at System.IO.MemoryStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.BinaryWriter.Write(Byte[] buffer)
at System.Runtime.Serialization.Formatters.Binary.__BinaryWriter.WriteSingleArray(NameInfo memberNameInfo, NameInfo arrayNameInfo, WriteObjectInfo objectInfo, NameInfo arrayElemTypeNameInfo, Int32 length, Int32 lowerBound, Array array)
at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteArray(WriteObjectInfo objectInfo, NameInfo memberNameInfo, WriteObjectInfo memberObjectInfo)
at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo)
at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck)
at Telerik.Reporting.Cache.SerializationUtils.Serialize(Object value)
at Telerik.Reporting.Services.Engine.PersistableObject.SetObject(String key, Object value)
at Telerik.Reporting.Services.Engine.DocumentResources.AddResource(RenderingResource resource)
at Telerik.Reporting.Services.Engine.Rendering.StoreRenderingStream(RenderingStream renderingStream)
at Telerik.Reporting.Services.Engine.RenderingStream.Finish()
at Telerik.Reporting.ImageRendering.DocumentPdf.EndDocument()
at Telerik.Reporting.Writing.DocumentWriter.Telerik.Reporting.BaseRendering.IWriter.WriteEndDocument()
at Telerik.Reporting.BaseRendering.PageHandler.Telerik.Reporting.Paging.IPageHandler.EndDocument(Boolean output)
at Telerik.Reporting.Paging.PageCompositionBase.<>c__DisplayClass110_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.InternalWait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, 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)
Error: Can not resolve assembly from Telerik.ReportViewer.Wpf.Design.Resources.Telerik.Windows.Data.dll Error: System.ArgumentException: The path is not of a legal form.at System.IO.Path.NewNormalizePath(String path, Int32 maxPathLength, Boolean expandShortPaths)at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)at System.IO.Path.GetFullPathInternal(String path)at System.Reflection.AssemblyName.GetAssemblyName(String assemblyFile)at Telerik.ReportViewer.Wpf.Design.Resources.GetResourceAssemblyName(ITracer tracer, String asmName) Error: System.NullReferenceException: Object reference not set to an instance of an object.at Telerik.ReportViewer.Wpf.Design.ItemTemplateWizard.CheckTelerikWpfReferences()at Telerik.ReportViewer.Wpf.Design.ItemTemplateWizard.RunStartedCore(Dictionary`2 replacementsDictionary)
To store reports, the Web Report Designer offers FileDefinitionStorage as an out-of-the-box solution for the DefinitionStorage. this FileDefinitionStorage does not support relative paths or sub-directories.
While the UriReportSourceResolver, which is used in the REST Service for rendering reports, does support sub-directories. These two services will often be used together, and for this reason, should behave consistently.
Hi Telerik Team,
I am using telerik reporting watermark to put some "design" in our report template for all the pages, but a small image with a size of 50kb as watermark generates additional 200-300MB of memory usage during the rendering of the report.
Please reduce the memory consumption since this behavior limits the number of user that can access the report simultaneously
Thanks
Ways to reproduce the problem:
1. Create simple one table one column report, with right horizontal text alignment in the column.
2. Set a data source with multiple rows, with different lengths for the string, displayed in the table's column.
3. Render the report under Windows and under Linux - the column text on different rows will not be aligned properly on linux, but will be shifted to the left or right depending on string's contents and length.
I've done a bit reserch on PDF rendering, concerning libgdiplus "MeasureString" method deficiencies, and here's what I discovered so far:
1. The source of the problem is the fact that libgdiplus ends up using cairo to measure string glyphs, and it does it's font metric in whole pixels (integer), using the DPI of the context it is called in. In short, if the context is using 96DPI, cairo will use these 96DPI to calculate (and round) the font metrics, and to write strings eventually.
2. When libgdiplus is compiled to use pango, the problem is much smaller (several millimeter differences become part of the millimeter), because internally pango scales the measurement 1024 times, but it appears that this is not enough to resolve the problem.
3. When using libgdiplus (with or without pango inbetween it and cairo) for both "DrawString" and "MeasureString", everything is perfect, but the fundamental problem in Relerik Reporting to PDF is that it renders in a vector format, but uses text metering for pixel format - it uses System.Graphics.MeasureString which is a DPI vased metering (on Linux at least) but uses proprietary "PdfRenderer.DrawString" of the "PdfRendered" class, not the native Graphics.DrawString. Since cairo rounds every character glyph metrics to an integer value, the longer the string is, the larger the discrepancy will be between string rendering when PDF is viewed (based on floats/doubles) and Graphics.MeasureString (based on integers, at least on Linux).
Ways to resolve the issue:
1. The best way to resolve the issue is not to call Graphics.MeasureString at all, when rendering to vector based format, because it measures string based on the DPI on graphics context it is in. In other words, proprietary "PdfRenderer.MeasureString" must be implemented, which works with font glyphs directly, entirely using single or double precision math to calculate glyph dimensions and string dimensions.
2. Another, not so perfect, but HUGELY EASIER way is to set DPI of the rendering context of the PDF to a higher value, here's how:
For the moment, PdfContext's constructor looks like thispublic PdfContext(string ownerPassword, string userPassword)
{
this.dataFormatter = string.IsNullOrWhiteSpace(ownerPassword) ?
new DataFormatter() :
new DataFormatterEncypted(ownerPassword, userPassword);
this.bmp = new Bitmap(1, 1);
this.graphics = Graphics.FromImage(this.bmp);
this.hdc = this.graphics.GetHdc();
this.pdfFontCache = new PdfFontCache();
}public PdfContext(string ownerPassword, string userPassword)
{
this.dataFormatter = string.IsNullOrWhiteSpace(ownerPassword) ?
new DataFormatter() :
new DataFormatterEncypted(ownerPassword, userPassword);
this.bmp = new Bitmap(1, 1);
bmp.SetResolution(9600, 9600); //ADDED
this.graphics = Graphics.FromImage(this.bmp);
this.hdc = this.graphics.GetHdc();
this.pdfFontCache = new PdfFontCache();
}I need to set a structured heading tags like <h2><h3> (https://www.w3.org/TR/WCAG20-TECHS/PDF9.html) so the pdf file can have those tags.
Please make the Reporting support more various tags so pdf files can have structured tags.