Skip to main content
A newer version of this page is available. .
All docs
V22.2

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 update fontconfig 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:

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:

Read Tutorial: Reporting .NET/.NET Core Limitations

The following commands configure the environment in the dockerfile:

View Example: How to Use the DevExpress CrossPlatform Drawing Engine in an ASP.NET Core Application

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:

Read Tutorial: Use the DevExpress 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:

View Example: Reporting for ASP.NET Core - How to Use the SkiaSharp-Based DevExpress Drawing Engine

RUN apt-get update
RUN apt-get install -y libc6 libicu-dev libfontconfig1