[]
ActiveReports.NET v20.2.2 uses different technologies for text measurement, layout, and drawing depending on the report type, compatibility mode, and output target.
ActiveReports uses the following text rendering engines:
GDI+ (Graphics Device Interface Plus) is the legacy Windows graphics API used by earlier .NET ActiveReports versions for text measurement and rendering.
GDI+ has these characteristics:
Windows-only: GDI+ is available only on Windows.
OS-defined text wrapping: Word breaking and text wrapping are determined by the Windows GDI+ engine rather than by ActiveReports.
Legacy compatibility support: In ActiveReports, GDI+ is available for Section reports when SectionDocument.CompatibilityMode is set to GDI.
When a Section report runs in GDI mode, text wrapping follows Windows GDI+ behavior. As a result, line breaks can differ from both Unicode-based line breaking and the whitespace-based wrapping behavior used in ActiveReports 2 (COM/VB6).
Document Solutions for Imaging .NET provides the TextLayout class - a cross-platform text layout engine used by RDLX-based reports.
Document Solutions for Imaging TextLayout is used by:
RDLX-based report. Always.
Section report. When SectionDocument.CompatibilityMode is set to CrossPlatform.
Document Solutions for Imaging TextLayout provides:
Cross-platform support across Windows, Linux, and macOS
Configurable line breaking through the LineBreakingAlgorithm setting in the ActiveReports.config
More consistent layout behavior across supported platforms and output targets that use the Document Solutions for Imaging pipeline
The LineBreakingAlgorithm setting supports these values:
Unicode (default): Uses standard Unicode line-breaking rules. Characters such as % and - are treated as valid break opportunities.
Legacy: Approximates the text-wrapping behavior of earlier .NET ActiveReports versions that used Windows GDI+ for text measurement.
Simplified: Allows wrap opportunities only at whitespace boundaries, producing wrapping behavior closer to ActiveReports 2 (COM/VB6).
For Section reports, the SectionDocument.CompatibilityMode property determines which text rendering engine is used.
Mode | Engine | Platform |
|
|---|---|---|---|
| Windows GDI+ | Windows only | ❌ No |
| Document Solutions | Windows, Linux, macOS | ✅ Yes |
If CompatibilityMode is set to GDI, text wrapping is controlled by Windows GDI+, so LineBreakingAlgorithm has no effect. If it is set to CrossPlatform, text layout is handled by Document Solutions for Imaging TextLayout, and the selected LineBreakingAlgorithm value is applied.
RDLX-based reports do not expose the CompatibilityMode property. They always use Document Solutions for Imaging TextLayout, so LineBreakingAlgorithm applies whenever the Document Solutions for Imaging rendering pipeline is used.
Different engines can produce different line breaks for the same text, especially when the text contains characters such as %, -, :, or ?.
GDI+ follows Windows GDI+ line-breaking behavior.
Document Solutions for Imaging with Unicode uses Unicode line-breaking rules, which treat characters such as % and - as valid break opportunities.
Document Solutions for Imaging with Simplified breaks lines only at whitespace boundaries, keeping strings such as +10%USt:33,92 together as a single unbreakable token.
These differences are especially relevant when you migrate reports from earlier ActiveReports versions.
A rendering pipeline is the sequence of processes that transforms a report definition (.rdlx or .rpx) into a viewable format, such as HTML, SVG, or PDF. The rendering pipeline varies by viewer and output format. It also determines which text layout engine performs line wrapping and, therefore, whether the LineBreakingAlgorithm setting applies.
ActiveReports.NET provides different rendering pipelines that correspond to the rendering technology used by the report.
Pipeline | Used by | Engine | Notes |
|---|---|---|---|
Direct2D (default) | RDLX-based reports, Section reports in | Direct2D / Document Solutions | Provides faster rendering and improved text quality. Does not support GDI-specific printer APIs. |
Section reports in | Windows GDI+ | Required when the application depends on GDI-specific printer APIs such as |
The GDI rendering pipeline is legacy and is used only when explicitly enabled.
In the JS Viewer and Blazor Viewer, text layout depends on the rendering format specified by the renderFormat option during viewer initialization:
SVG: The report is rendered as a vector image. Line wrapping is handled by the Document Solutions for Imaging TextLayout engine; therefore, LineBreakingAlgorithm applies.
HTML: The report is rendered by using standard HTML elements. Line wrapping is handled by the browser’s CSS text-layout engine, including the word-break and overflow-wrap properties. Therefore, LineBreakingAlgorithm does not apply.
The ASP.NET WebViewer is a server-side Web Forms control for .NET Framework 4.7.2–4.8.1. Its ViewerType property determines the rendering pipeline:
HTMLViewer (default): Renders the report through the Document Solutions TextLayout engine and sends interactive HTML/SVG content to the browser. The LineBreakingAlgorithm setting applies.
RawHTML: Renders the report as one continuous HTML page. The browser’s CSS text-layout engine determines line wrapping. The LineBreakingAlgorithm setting does not apply.
AcrobatReader: Renders the report as a PDF document and displays it in the Acrobat Reader browser plug-in. The Document Solutions TextLayout engine determines line wrapping during PDF rendering. The LineBreakingAlgorithm setting applies.
Viewer and render format | Text layout engine |
|
|---|---|---|
JS Viewer or Blazor Viewer; | Browser CSS text-layout engine | ❌ No |
JS Viewer or Blazor Viewer, | Document Solutions for Imaging | ✅ Yes |
ASP.NET WebViewer, | Document Solutions for Imaging | ✅ Yes |
ASP.NET WebViewer, | Browser CSS text-layout engine | ❌ No |
ASP.NET WebViewer, | Document Solutions for Imaging | ✅ Yes |
To apply LineBreakingAlgorithm when viewing an RDLX-based report in the JS Viewer or Blazor Viewer, set the renderFormat option to svg. No change is required for Section reports.
Report type | CompatibilityMode | Desktop viewer | Web viewer (HTML) | Web viewer (SVG) | Printing (Direct2D) | Printing (GDI) |
|---|---|---|---|---|---|---|
Section | GDI | GDI+ | Browser | GDI+ | ❌ | GDI+ |
Section | CrossPlatform | Document Solutions for Imaging | Browser | Document Solutions for Imaging | Document Solutions for Imaging | — |
RDLX-based | Not applicable | Document Solutions for Imaging | Browser | Document Solutions for Imaging | Document Solutions for Imaging | — |