I need SVG background images which are rendered as vectors to PDF (not rasterized) - just like with PictureBoxes.
Cannot provide a valid design-time value for multivalue report parameter and thus cannot preview the data and check whether the query is returning anything. When using a multivalue report parameter of type Int, you may get the following error:
Failed to convert parameter value from a String to a Int32
This does not in any way affect the runtime behavior of the report and if the query is correct, the data is retrieved at runtime, and the report loads as expected.
Hello,
I am using the Blazor Web Report Designer on a page that is not the default route, i.e. "/". When I am at step 2 in the WebServiceDataSource wizard to add parameters, if I click the Add Parameter button it routes to the home page.
I believe this is caused by the href="#' empty route. Below is an animation of what I mean. This is also reproduced in the BlazorIntegrationDemo in the installation directory.

We use Html Report viewer for rendering reports based on Telerik Reporting.
We observe the following issue with report parameters with AvailableValues configured and Multivalue = true:
When there are one or more items from the available options selected - manually unselecting all of them leads to rendering a report as if the last unselected option is still selected leading to wrong result
All other operations over the multivalue parameter work fine.
The issue occurs only in List type Parameter editors. With ComboBox editors this works as expected.
The default value of the report property SkipBlankPages is True and when there is an error in the report, for example, due to a problem with the connection to the database, the error message may be hidden as the report is not rendered at all.
The report should be rendered in order to display the error message also when SkipBlankPages is True.
I want each time a user logs out from my application its session in the Reporting REST Service also to expire. I tried to perform the Unregister Client request with a custom code. However, I need the clientId and there is no straightforward way to get its value from the viewer.
It turns out that the Reporting REST Service keeps its own client sessions that are different from the hosting application sessions. For that reason, the Telerik Reporting REST Service doesn't know whether a user is logged in/out in the main application. Therefore, a Logout functionality in the viewer will be beneficial for scenarios like the described one.
I would like to be able to access the report template layout using the ref so that I can save the report template outside of the designer. Similar to this:
<button type="button"class="btn btn-light btn-sm" @onclick="Save">Save</button>
<WebReportDesigner @ref="designer1"
DesignerId="wrd1"
ServiceUrl="/api/reportdesigner"
Report="Dashboard.trdp"
ToolboxArea="new ToolboxAreaOptions() { Layout = ToolboxAreaLayout.Grid }"
PropertiesArea="new PropertiesAreaOptions() { Layout = PropertiesAreaLayout.Categorized }" />
@code {
WebReportDesigner designer1;
void Test()
{
var layout = (byte)designer1.Report.Layout;
}
}
Coming from having developed many SSRS reports one thing I think telerik is missing is a nicer visualisation of row and column grouping in a table. SSRS does this really well as shown in the screenshot below where we can easily see which rows belong to the detail and 2 other groups.
I think this would be a very useful addition to the telerik designers!
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.
When the PDF rendering extension has its "enableAccessibility" setting set to true, the text in the produced document cannot be selected using the Select Tool from the Adobe Acrobat Reader context menu. The text can be selected in other PDF readers like Foxit PDF Reader. The text is also selectable in Adobe Acrobat Reader when the document is created without enabling the accessibility features.
Generated PDFs do not have bookmarks in R2 2021 unless there is a TOC section in the report.
By setting the device info setting "ProcessItemActions", the generated PDFs have bookmarks again.
var reportProcessor = new Telerik.Reporting.Processing.ReportProcessor();
var reportSource = new Telerik.Reporting.UriReportSource();
reportSource.Uri = "some Uri";
var deviceInfo = new System.Collections.Hashtable();
deviceInfo["ProcessItemActions"] = true;
reportProcessor.RenderReport("PDF", reportSource, deviceInfo);
My need is to format numbers according to a custom culture with custom decimal, group symbols and number of decimal digits. For this I've created a custom CultureInfo object and set it up on Report.Culture property in a IReportSourceResolver implementation - I am using ASP.NET from .net 5 example. For some reason, most of the NumberFormatInfo properties are ignored and a default, specific to the underlying culture code, is used.
I need to programmatically change the NumberFormatInfo, because the service that is using Telerik Reporting is working in a multi tenant / multi culture environment and it must use the same report template but with different cultures for different requests.
Current result:
123 456 789
123 456 789,012
123 456 789 €
123 456 789,01 €
Desired result, as per NumberFormatInfo settings (seen also in console):
123#456#789
123#456#789*01235
123##456##789 E
123##456##789**012346 E
Documentation reference:
https://docs.telerik.com/reporting/designing-reports-report-globalization
"A report is globalized with the help of a System.Globalization.CultureInfo object. You can specify a Culture for the entire Telerik.Reporting.Report by setting its Report.Culture property. This will force all Telerik.Reporting.TextBox items to respect the assigned Culture."
But this does not appear to fully work. NumberFormatInfo of the Report.Culture property is not considered.
I've attached a project that reproduces this issues.
I am using Telerik Report Designer 15.1.21.512
I have created a Web Service Datasource:
The returned Raw String in Preview Data in the Wizard:
| Raw |
|---|
{ |
Everything appears to work, however the Datasource returns an Error:
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.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();
}Figure 1 report is generated using the data source in figure 2. Data in column "Value2" is mapped to the column Text in the generated report.
In the below-generated report, text in row one "Default CUS for CDV" is truncated. A feature to make the user know there is more data to be shown will be great.
Figure 1
Figure 2
So, Adding an option to display an indicator such as “...” for truncated strings so that the viewers get to know there is more information to be displayed
Or
Provide an option to absolute break (display until last possible character) of the string rather than word-wrapping if there’s more content than the text box width.