Skip to content

pdf generator README

github-actions[bot] edited this page Jun 2, 2026 · 1 revision

cmp-pdf-generator

Cross-platform PDF generation library — published as part of kmp-toolkit.

Module README + cookbook + ADRs live at /cmp-pdf-generator/.

In a nutshell

val generator = createPdfGenerator(context)  // Android — or PdfGenerator() elsewhere
val doc = pdf {
    branding(PdfBranding.default())
    page {
        heading(1, "Hello")
        text("World")
    }
}
val result = generator.generate(doc, PdfOutput.Share)

Three input modes

  1. HTMLgenerateFromHtml(html, output) — pixel-perfect when fidelity matters
  2. MarkdownMarkdownPdfAdapter.markdownToHtml(md, branding)generateFromHtml
  3. DSLpdf { page { … } } — programmatic, type-safe, no HTML

Six output destinations

PdfOutput.File, .ByteArrayOutput, .Uri(callback), .Share, .Print, .Save.

Five pre-built templates

InvoiceTemplate, ReportTemplate, ReceiptTemplate, StatementTemplate, LetterTemplate.

Platform support

Platform Engine
Android WebView + PrintManager / native PdfDocument
iOS 14+ WKWebView.createPDF / PDFKit
macOS 11+ WKWebView.createPDF / PDFKit
JVM OpenHTMLToPDF / Apache PDFBox
JS (browser+Node) iframe+print / pdf-lib
wasmJs (browser+Node) iframe+print / pdf-lib

Not targeted: tvOS, watchOS, Linux native, mingwX64, wasmWasi — upstream library coverage is incomplete on those.

Links

Clone this wiki locally