Class RdlWriter
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.