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.SkiaSharpCode 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;
}
}
}