public void ToPng(TaskCompletionSource <ToFileResult> taskCompletionSource, Xamarin.Forms.WebView xfWebView, string fileName) { if (Platform.CreateRendererWithContext(xfWebView, Settings.Context) is IVisualElementRenderer renderer) { Android.Webkit.WebView droidWebView = renderer.View as Android.Webkit.WebView; if (droidWebView == null && renderer.View is WebViewRenderer xfWebViewRenderer) { droidWebView = xfWebViewRenderer.Control; } if (droidWebView != null) { //var size = new Size(8.5, 11); var externalPath = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath; using (var dir = new Java.IO.File(externalPath)) using (var file = new Java.IO.File(dir + "/" + fileName + ".png")) { if (!dir.Exists()) { dir.Mkdir(); } if (file.Exists()) { file.Delete(); } droidWebView.SetLayerType(LayerType.Software, null); droidWebView.Settings.JavaScriptEnabled = true; #pragma warning disable CS0618 // Type or member is obsolete droidWebView.DrawingCacheEnabled = true; droidWebView.BuildDrawingCache(); #pragma warning restore CS0618 // Type or member is obsolete droidWebView.SetWebViewClient(new WebViewCallBack(taskCompletionSource, fileName, OnPageFinished)); } } } }