Renderer
The renderer translates model nodes into backend draw calls. A concrete renderer (e.g. PDF) dispatches each node type to the appropriate painter.
DocraftAbstractRenderer
Abstract base with a virtual method per node type.
-
class DocraftAbstractRenderer
Abstract renderer that converts model nodes into backend draw calls.
Concrete renderers (e.g., PDF) implement each node type using painters and the document context’s rendering backend.
Subclassed by docraft::renderer::DocraftPDFRenderer
Public Functions
Creates a renderer bound to a document context.
- Parameters:
docraftContext – Document context used for backend access.
-
virtual ~DocraftAbstractRenderer() = default
-
virtual void render_text(const model::DocraftText &text_node) = 0
Renders a text node.
- Parameters:
text_node – Text node.
-
virtual void render_section(const model::DocraftSection §ion_node) = 0
Renders a section node.
- Parameters:
section_node – Section node.
-
virtual void render_image(const model::DocraftImage &image_node) = 0
Renders an image node.
- Parameters:
image_node – Image node.
-
virtual void render_table(const model::DocraftTable &table_node) = 0
Renders a table node.
- Parameters:
table_node – Table node.
-
virtual void render_rectangle(const model::DocraftRectangle &rectangle_node) = 0
Renders a rectangle node.
- Parameters:
rectangle_node – Rectangle node.
-
virtual void render_circle(const model::DocraftCircle &circle_node) = 0
Renders a circle node.
- Parameters:
circle_node – Circle node.
-
virtual void render_triangle(const model::DocraftTriangle &triangle_node) = 0
Renders a triangle node.
- Parameters:
triangle_node – Triangle node.
-
virtual void render_line(const model::DocraftLine &line_node) = 0
Renders a line node.
- Parameters:
line_node – Line node.
-
virtual void render_polygon(const model::DocraftPolygon &polygon_node) = 0
Renders a polygon node.
- Parameters:
polygon_node – Polygon node.
-
virtual void render_blank_line(const model::DocraftBlankLine &blank_line_node) = 0
Renders a blank line node.
- Parameters:
blank_line_node – Blank line node.
DocraftPDFRenderer
Concrete renderer targeting the PDF backend.
-
class DocraftPDFRenderer : public docraft::renderer::DocraftAbstractRenderer
Concrete renderer that targets a PDF backend.
Dispatches each node type to the appropriate painter implementation.
Public Functions
-
virtual void render_text(const model::DocraftText &text_node) override
Renders a text node to PDF.
- Parameters:
text_node – Text node.
-
virtual void render_section(const model::DocraftSection §ion_node) override
Renders a section node to PDF.
- Parameters:
section_node – Section node.
-
virtual void render_image(const model::DocraftImage &image_node) override
Renders an image node to PDF.
- Parameters:
image_node – Image node.
-
virtual void render_table(const model::DocraftTable &table_node) override
Renders a table node to PDF.
- Parameters:
table_node – Table node.
-
virtual void render_rectangle(const model::DocraftRectangle &rectangle_node) override
Renders a rectangle node to PDF.
- Parameters:
rectangle_node – Rectangle node.
-
virtual void render_circle(const model::DocraftCircle &circle_node) override
Renders a circle node to PDF.
- Parameters:
circle_node – Circle node.
-
virtual void render_triangle(const model::DocraftTriangle &triangle_node) override
Renders a triangle node to PDF.
- Parameters:
triangle_node – Triangle node.
-
virtual void render_line(const model::DocraftLine &line_node) override
Renders a line node to PDF.
- Parameters:
line_node – Line node.
-
virtual void render_polygon(const model::DocraftPolygon &polygon_node) override
Renders a polygon node to PDF.
- Parameters:
polygon_node – Polygon node.
-
virtual void render_blank_line(const model::DocraftBlankLine &blank_line_node) override
Renders a blank line node to PDF.
- Parameters:
blank_line_node – Blank line node.
Creates a renderer bound to a document context.
- Parameters:
docraftContext – Document context used for backend access.
-
virtual void render_text(const model::DocraftText &text_node) override