# Packaging and Unpackaging Report Definitions

The [ReportPackager](https://www.telerik.com/products/reporting/documentation/api/telerik.reporting.reportpackager) serializes the report definition in XML or JSON and, with zip compression, packages the definition and its resources. The resources are in their native format and archived for better performance. This way, the definition is faster to handle and more compact. This is the default report document format for the [Standalone Report Designer](https://www.telerik.com/products/reporting/documentation/designing-reports/report-designer-tools/overview#standalone-report-designer) and the [Web Report Designer](https://www.telerik.com/products/reporting/documentation/designing-reports/report-designer-tools/overview#web-report-designer).

> TRDJ report definitions were introduced with [2026 Q3 (20.2.26.812)](https://www.telerik.com/support/whats-new/reporting/release-history/progress-telerik-reporting-2026-q3-\(20-2-26-812\)) Telerik Reporting Release.

## Packaging .TRDX report definition

The following sample code snippet demonstrates how to package a predefined .TRDX (XML) report definition:

```C#
var reportPackager = new ReportPackager();
using (var targetStream = System.IO.File.Create("PackagedReport2.trdp"))
{
    var xmlString = System.IO.File.ReadAllText("Report1.trdx");
    reportPackager.Package(xmlString, targetStream);
}
```

```VB.NET
Dim reportPackager = New ReportPackager()
Using targetStream = System.IO.File.Create("PackagedReport3.trdp")
    Dim xmlString = System.IO.File.ReadAllText("Report1.trdx")
    reportPackager.Package(xmlString, targetStream)
End Using
```

## Packaging .TRDJ report definition

The following sample code snippet demonstrates how to package a predefined .TRDJ (JSON) report definition:

```C#
var reportPackager = new ReportPackager();
using (var targetStream = System.IO.File.Create("PackagedReport3.trdp"))
{
    var jsonString = System.IO.File.ReadAllText("Report1.trdj");
    reportPackager.Package(jsonString, targetStream);
}
```

```VB.NET
Dim reportPackager = New ReportPackager()
Using targetStream = System.IO.File.Create("PackagedReport4.trdp")
    Dim jsonString = System.IO.File.ReadAllText("Report1.trdj")
    reportPackager.Package(jsonString, targetStream)
End Using
```

> note Packaging and unpackaging JSON report definitions requires the 'Telerik.Reporting.JsonSerialization' assembly, which is not part of the 'Telerik.Reporting' assembly. To do this, install the 'Telerik.Reporting.JsonSerialization' NuGet package (or add a reference to 'Telerik.Reporting.JsonSerialization.dll') and make sure it is deployed next to 'Telerik.Reporting.dll'.

## Packaging CLR report definition

The following sample code snippet demonstrates how to package a predefined CLR (C# or VB) report definition:

```C#
var report = new Report1();
var reportPackager = new ReportPackager();
using (var targetStream = System.IO.File.Create("PackageReport1.trdp"))
{
    reportPackager.Package(report, targetStream);
}
```

```VB.NET
Dim report = New Report1()
Dim reportPackager = New ReportPackager()
Using targetStream = System.IO.File.Create("PackagedReport2.trdp")
    reportPackager.Package(report, targetStream)
End Using
```

## Unpackaging

The following sample code snippet demonstrates how to unpackage a predefined .TRDP report definition:

```C#
var reportPackager = new ReportPackager();
using (var sourceStream = System.IO.File.OpenRead("Report1.trdp"))
{
    var report = (Report)reportPackager.UnpackageDocument(sourceStream);
}
```

```VB.NET
Dim reportPackager = New ReportPackager()
Using sourcetStream = System.IO.File.OpenRead("Report1.trdp")
    Dim report = reportPackager.Unpackage(sourcetStream)
End Using
```

## See Also

* [Overview](https://www.telerik.com/products/reporting/documentation/designing-reports/report-designer-tools/overview)
