Common Rendering Utilities
Common Rendering Utilities
Aspose.Page FOSS for Python exposes a set of lower-level rendering utilities used
internally by PsDocument and XpsDocument. These components can also be used directly
when precise control over the output is needed.
RenderModelBuilder
RenderModelBuilder constructs a RenderDocument incrementally. Call begin_page()
to start a page, add drawing commands, then call end_page(). Call document() to
retrieve the completed RenderDocument.
from aspose.page.render.model import RenderModelBuilder
builder = RenderModelBuilder()
builder.begin_page(595, 842)
builder.end_page()
doc = builder.document()Available drawing methods: add_path(), add_text(), add_image(), clip(),
save_state(), and restore_state().
PdfWriter
PdfWriter serializes a RenderDocument to PDF 1.4 bytes. It requires a PdfMetadata
instance. See PDF Output for details.
RasterRenderer
RasterRenderer renders a RenderDocument to a RasterSurface — an in-memory RGBA
pixel buffer. The RasterSurface provides get_pixel(), set_pixel(), width, and
height.
from aspose.page.render.model import RenderModelBuilder
from aspose.page.image.raster_renderer import RasterRenderer
builder = RenderModelBuilder()
builder.begin_page(400, 300)
builder.end_page()
doc = builder.document()
renderer = RasterRenderer()
surface = renderer.render(doc, page_index=0)
print(f"Pixels: {surface.width}x{surface.height}")Tips and Best Practices
- Use
RenderModelBuilderwhen you need to build a document from drawing primitives. - Use
PdfWriterwith aRenderDocumentfor custom PDF generation without a source file. RasterSurfacepixel access is available viaget_pixel()andset_pixel().
API Reference Summary
| Class / Method | Description |
|---|---|
RenderModelBuilder.begin_page(width, height) | Start a new page |
RenderModelBuilder.end_page() | Finalize the current page |
RenderModelBuilder.document() | Retrieve the completed RenderDocument |
PdfWriter.write(document) | Serialize RenderDocument to PDF bytes |
RasterRenderer.render(document, page_index) | Render a page to RasterSurface |
RasterSurface.width | Surface width in pixels |
RasterSurface.height | Surface height in pixels |