Export to Pdf No GUI - majorsilence/Reporting GitHub Wiki

This code demonstrates the basics of loading a report with no gui and exporting to pdf.

This requires the following nuget packages.

dotnet add package Majorsilence.Reporting.RdlEngine
dotnet add package Majorsilence.Reporting.RdlCri

# or

dotnet add package Majorsilence.Reporting.RdlEngine.SkiaSharp
dotnet add package Majorsilence.Reporting.RdlCri.SkiaSharp

Code reads rdl file into string, parses, and initializes a report, finally exporting to pdf.

using System;
using Majorsilence.Reporting.Rdl;

namespace NoGuiExample
{
    class Program
    {
        static async Task Main(string[] args)
        {
            // One time per app instance
            RdlEngineConfig.RdlEngineConfigInit();

            var rpt = GetReport(new Uri(@"C:\The\Report\Directory\SimpleTest1.rdl"));
            await SaveReport(@"C:\The\Report\Directory\simpletest1.pdf", rpt);
        }
        private static async Task SaveReport(string savePath, Report rpt)
        {
            await rpt.RunGetData(null);
            var sg = new Majorsilence.Reporting.Rdl.OneFileStreamGen(savePath, true);
            await rpt.RunRender(sg,  OutputPresentationType.PDF);
        }

        private static async Task<Report> GetReport(Uri sourcefile)
        {
            var reportSource = System.IO.File.ReadAllText(sourcefile.AbsolutePath);
            var rdlp = new RDLParser(reportSource);
            var r = awaitrdlp.Parse();

            if (r.ErrorMaxSeverity > 0)
            {
                foreach (string emsg in r.ErrorItems)
                {
                    Console.WriteLine(emsg);
                }

                int severity = r.ErrorMaxSeverity;
                r.ErrorReset();
                if (severity > 4)
                {
                    r = null; // don't return when severe errors
                }
            }

            return r;
        }
    }
}
⚠️ **GitHub.com Fallback** ⚠️