A flow-layout document: blocks laid out top to bottom in the body area of pages of a PageTemplate (one per section, StartSection(PageTemplate)), starting a new page whenever the next line would cross the bottom of the body area. Render(PdfDocument) appends the pages to a PdfDocument and draws through its canvas, so the result saves like any other page content.
public sealed class FlowDocument
ISO 32000-2 §7.7.3.3 (page objects), §8.2 and §9.4 (page content and text operators): each page is a new page object with the setup's media box and one content stream of text objects. The same blocks, fonts and setup produce the same bytes on every run and platform.
Not thread-safe: build and render from one thread, as for any document mutation.
kind:method, kind:property, kind:ctor. Press Esc to clear.FlowDocument(PageSetup)Creates an empty flow with pages of page and no header, footer or background.FlowDocument(PageTemplate)Creates an empty flow whose pages follow template until a StartSection(PageTemplate).BlocksThe blocks, in the order they flow.PageThe size and margins of the pages of the first section.TaggingGets or sets how Render(PdfDocument) tags the content it lays out, or null (the default) for untagged content. Page backgrounds, watermarks, headers and footers are marked as artifacts either way.TemplateThe template of the first section.Add(FlowBlock)Appends a block.Render(PdfDocument)Lays every block out and appends the pages to document after its existing pages. The fonts of the blocks' styles shall come from document. A flow with no blocks adds no page.StartSection(PageTemplate)Starts a section: the blocks added from now on begin on a new page and flow on pages of template, whose first-page header and footer apply to that page. Page numbers continue across sections.