1. Create a WebView and load the html to that WebView.
2. Wait for the PageFinished event.
3.
B4X:
Sub CreatePrinterAttributes As JavaObject
Dim builder As JavaObject
builder.InitializeNewInstance("android.print.PrintAttributes.Builder", Null)
Dim mediaSize As JavaObject
mediaSize = mediaSize.InitializeStatic("android.print.PrintAttributes.MediaSize").GetField("UNKNOWN_LANDSCAPE")
Return builder.RunMethod("build", Null)
End Sub
Printer.As(JavaObject).RunMethod("PrintWebView", Array("job name", WebView1, CreatePrinterAttributes"))
1. Create a WebView and load the html to that WebView.
2. Wait for the PageFinished event.
3.
B4X:
Sub CreatePrinterAttributes As JavaObject
Dim builder As JavaObject
builder.InitializeNewInstance("android.print.PrintAttributes.Builder", Null)
Dim mediaSize As JavaObject
mediaSize = mediaSize.InitializeStatic("android.print.PrintAttributes.MediaSize").GetField("UNKNOWN_LANDSCAPE")
Return builder.RunMethod("build", Null)
End Sub
Printer.As(JavaObject).RunMethod("PrintWebView", Array("job name", WebView1, CreatePrinterAttributes"))
Modified sub as below. Works well now. Thank you @Erel .
B4X:
Sub CreatePrinterAttributes As JavaObject
Dim builder As JavaObject
builder.InitializeNewInstance("android.print.PrintAttributes.Builder", Null)
Dim mediaSize As JavaObject
mediaSize = mediaSize.InitializeStatic("android.print.PrintAttributes.MediaSize").GetField("UNKNOWN_LANDSCAPE")
builder.RunMethod("setMediaSize", Array(mediaSize))
Return builder.RunMethod("build", Null)
End Sub