Table of Contents

Class RdlWriter

Namespace
DocWright.Formats.Rdl
Assembly
DocWright.Formats.Rdl.dll

Writes the DocWright document model as an SSRS report definition (.rdl).

public sealed class RdlWriter : IDocumentWriter
Inheritance
RdlWriter
Implements
Inherited Members

Remarks

The output is a report template, not a screenshot. Page setup, tables, images and character formatting are preserved, and merge fields become dataset expressions, so the result opens in Report Builder as something a report author can point at a data source and run. That is the whole point of exporting to RDL rather than to a fixed-layout format.

This is a writer, not a renderer, and that is a decision. ILayoutRenderer looks like the natural home because it already has positions, but LayoutModel flattens everything to glyph runs and filled rectangles: no table, no cell and no paragraph survives it. An RDL written off that seam would be a page of floating textboxes full of glyph fragments, with no Tablix and nothing bindable to a dataset. Geometry therefore comes from the DOM's own measures and vertical flow is left to RDL's CanGrow.

Export only. There is no RDL reader and no round-trip: RDL cannot carry the document model, and the losses are enumerated in COMPAT.md rather than discovered.

Output is UTF-8 and deterministic — byte-identical across runs and across the four target frameworks for the same input. There are no timestamps and no generated identifiers; in particular rd:ReportID, which Report Designer fills with a fresh GUID, is omitted unless the caller supplies a stable value.

Constructors

RdlWriter()

Initializes a writer with default settings — RDL 2016/01.

RdlWriter(RdlWriteSettings)

Initializes a writer with format-specific settings.

Properties

Format

Gets the format this writer produces.

Methods

Write(IDocWrightDocument, Stream, DocumentWriteOptions, IConversionDiagnostics)

Writes the document to the stream.