RenderMode

Controls how Compose content is rendered to PDF.

enum class RenderMode {
    VECTOR,
    RASTER,
}

Values

VECTOR

Vector rendering via Skia SVGCanvas. Produces smaller PDFs with selectable text and crisp scaling.

The rendering pipeline: Compose -> Skia PictureRecorder -> SVGCanvas -> SVG string -> SvgToPdfConverter -> PDFBox vector commands -> PDF.

RASTER

Raster rendering via ImageComposeScene. Produces pixel-perfect output as an embedded image.

The rendering pipeline: Compose -> ImageComposeScene -> BufferedImage -> PDFBox embedded image -> PDF.


Usage

// Vector (default)
val pdf = renderToPdf(mode = RenderMode.VECTOR) { content() }

// Raster
val pdf = renderToPdf(mode = RenderMode.RASTER, density = Density(3f)) { content() }

See also