Use Reporting on Linux and macOS
- 4 minutes to read
This article lists packages that are required before you use Reporting tools on Linux or macOS.
Common Libraries
Add the following common libraries to your application regardless of the used drawing engine:
The .NET library of the required version.
Packaged fonts. To install font files on your machine, put them in the
/usr/share/fonts
folder and execute the ‘fc-cache’ command to updatefontconfig
cache files.Refer to the following article for more information on font installation in Reporting Tools: Use Custom Fonts in Reporting.The DevExpress.Pdf.SkiaRenderer and libjpeg-turbo packages must also be added for reports with embedded PDF content.
Available Drawing Engines
Add libraries related to the drawing engine to your application. DevExpress Reporting can use the following two drawing engines. Note that each engine is compatible with a certain range of System.Drawing.Common
library versions.
Drawing Engine | System.Drawing.Common version |
---|---|
Pango-Based Drawing Engine | 6 and earlier |
Skia-Based Drawing Library | All versions |
How DevExpress Reporting Chooses an Engine
DevExpress Reporting looks for drawing library references and enables the corresponding engine. The choice is also restricted by System.Drawing.Common
library compatibility, as outlined in the table above. If the application contains references required to both engines (i.e., libgdiplus
and DevExpress.Drawing.Skia
), the pango-based engine is used. If no references are available, the exception is thrown.
You can force Skia-based rendering even if DevExpress Reporting does not enable it automatically. Call the following method to do so:
DevExpress.Drawing.Internal.DXDrawingEngine.ForceSkia()
Pango-Based Drawing Engine
In addition to the libraries listed above, the Pango-based drawing engine engine requires the following packages:
- libgdiplus
- Pango
- Cairo
The font libraries to measure, render, and export reports within your application:
fontconfig
harfbuzz
freetype
For macOS, add the Homebrew package manager to your system and use the following terminal command to install the latest library versions:
brew install freetype harfbuzz fontconfig icu4c
If you experience unexpected visual glitches or artifacts in the output, check to see whether you have installed the latest version (v6+) of the libgdiplus
library. If you cannot find the recommended version in the package manager, you can build the library from the source code available as part of the Mono project on Github: libgdiplus: An Open Source implementation of the GDI+ API..
To avoid .NET 6 limitations related to the System.Drawing.Common library, specify the EnableUnixSupport
option as described in the following help topic:
The following commands configure the environment in the dockerfile:
RUN apt-get update
RUN apt-get install -y libc6 libgdiplus libicu-dev libharfbuzz0b libfontconfig1 libfreetype6
RUN apt-get install -y libpango-1.0-0 libpangocairo-1.0
Refer to the following article for further information on how to enable the cross-platform drawing engine:
Skia-Based Drawing Library
The DevExpress Drawing Library allows you to use the new Skia-based drawing engine. Make sure that you add the DevExpress.Drawing.Skia
package to your application to use the new drawing engine.
If you use the the System.Drawing.Common
package v7 and later, the Skia-based engine is enabled automatically and the libgdiplus
library is not required.
The following commands configure the environment in the dockerfile: