Table of Contents

Class ReportPaginator

Namespace
DocWright.Reporting.Pagination
Assembly
DocWright.Reporting.dll

Divides a processed report into pages: every item positioned, every textbox's text laid out, page headers and footers evaluated with their page numbers. The result is a ReportPageModel.

public static class ReportPaginator
Inheritance
ReportPaginator
Inherited Members

Remarks

Measured, not assumed. Text is laid out in thousandths of an inch from each face's win metrics, items below a growing item keep their authored gap to it, a textbox that does not fit moves to the next page or splits between lines, and page headers and footers reserve their height on every page — each rule read from the PDF Microsoft's report engine writes for a probe report (facts 31–43 in tools/DocWright.ReportOracle/README.md).

Stateless and concurrent. Nothing is kept between calls; one ReportInstance may be paginated on several threads at once. The FontEngine is the caller's to share — building one reads every installed font, so a host should keep one.

Failures. An expression that fails in a textbox shows #Error and is reported; a style value that cannot be read uses its default and is reported (DXP9303). Limits raise ResourceLimitExceededException (MaxReportPages) and cancellation OperationCanceledException.

Methods

Paginate(ReportInstance, FontEngine)

Paginates a report physically, with default options.

Paginate(ReportInstance, FontEngine, ReportPaginationOptions?)

Paginates a report.

Paginate(ReportInstance, FontEngine, ReportPaginationOptions?, CancellationToken)

Paginates a report.