Skip to content

GTK Viewer Linux

Peter Gill edited this page Jun 8, 2026 · 2 revisions

The Majorsilence.Reporting.RdlGtk3 package provides a GTK Sharp 3 widget and a standalone GTK 3 viewer for Linux and macOS.

Gtk Rdl Viewer in Action

Loading a report

LoadReport is async. Await it before accessing the viewer state.

var viewer = new Majorsilence.Reporting.RdlGtk3.RdlGtkViewer();
await viewer.LoadReport(
    new Uri(@"/home/user/reports/report.rdl"),
    "TestParam1=Hello and Goodbye&TestParam2=Testing parameter 2");

Full working example

using System;
using System.Threading.Tasks;
using Gtk;

public class GtkRdlViewerExample
{
    public static async Task Main()
    {
        Application.Init();

        Window myWin = new Window("Majorsilence Reporting — GTK Viewer");
        myWin.Resize(800, 800);
        myWin.DeleteEvent += (s, e) => Application.Quit();

        // One time per app instance
        Majorsilence.Reporting.Rdl.RdlEngineConfig.RdlEngineConfigInit();

        var viewer = new Majorsilence.Reporting.RdlGtk3.RdlGtkViewer();
        await viewer.LoadReport(
            new Uri(@"/home/user/reports/SimpleTest3WithParameters.rdl"),
            "TestParam1=Hello and Goodbye&TestParam2=Testing parameter 2");

        myWin.Add(viewer);
        myWin.ShowAll();

        Application.Run();
    }
}

Font requirements on Linux

SkiaSharp requires fonts to be installed on the host. See Linux — PDF export and Fonts.

sudo apt-get install -y fonts-liberation fontconfig
sudo fc-cache -f -v

Clone this wiki locally