Reuben F
07/04/2022, 6:33 PMReuben F
07/04/2022, 6:33 PMimport org.w3c.dom.Element
@JsModule("html2pdf.js")
@JsNonModule
external fun html2pdf(element: Element, opts: PdfOptions)
data class PdfOptions(val filename: String, val margin: Int)
Reuben F
07/04/2022, 6:33 PMimplementation(npm("html2pdf.js", "0.9.3"))
Reuben F
07/04/2022, 6:34 PMhtml2pdf(someElement,
PdfOptions("janet", 100)
)
Reuben F
07/04/2022, 6:34 PMBig Chungus
07/04/2022, 6:43 PMReuben F
07/04/2022, 6:48 PMhtml2pdf(Root.getFirstRoot()!!.getElement()!! as HTMLElement,
js("{}").unsafeCast<PdfOptions>().apply {
filename = "janet"
}
)
doesn't apply options, stillBig Chungus
07/04/2022, 6:49 PMBig Chungus
07/04/2022, 6:50 PMReuben F
07/04/2022, 6:56 PMhtml2pdf(Root.getFirstRoot()!!.getElement()!! as HTMLElement,
js("{}").unsafeCast<PdfOptions>().apply {
filename = "janet"
}
)
@JsModule("html2pdf.js")
@JsNonModule
external fun html2pdf(element: Element, opts: PdfOptions)
@JsModule("html2pdf.js")
@JsNonModule
external interface PdfOptions {
var filename: String
var margin: Int
}
this worked, thanks!
really ugly though - is there any way around the unsafeCast? It doesn't work as:
object: PdfOptions {
override val filename: String
get() = "janet"
override val margin: Int
get() = 10
}
Big Chungus
07/04/2022, 6:58 PMBig Chungus
07/04/2022, 7:09 PM