@@ -30,7 +30,7 @@ class DefaultDom2ImageService(IJSRuntime runtime, ILogger<DefaultDom2ImageServic
3030 catch ( OperationCanceledException ) { }
3131 catch ( Exception ex )
3232 {
33- logger . LogError ( ex , "{GetUrlAsync} throw exception" , nameof ( GetUrlAsync ) ) ;
33+ logger . LogError ( ex , "{GetUrlAsync} throw exception: {ex} " , nameof ( GetUrlAsync ) , ex . Format ( ) ) ;
3434 }
3535 return data ;
3636 }
@@ -53,10 +53,33 @@ class DefaultDom2ImageService(IJSRuntime runtime, ILogger<DefaultDom2ImageServic
5353 catch ( OperationCanceledException ) { }
5454 catch ( Exception ex )
5555 {
56- logger . LogError ( ex , "{GetUrlAsync } throw exception" , nameof ( GetUrlAsync ) ) ;
56+ logger . LogError ( ex , "{GetStreamAsync } throw exception: {ex} " , nameof ( GetStreamAsync ) , ex . Format ( ) ) ;
5757 }
5858 return data ;
5959 }
6060
61+ /// <summary>
62+ /// <inheritdoc/>
63+ /// </summary>
64+ /// <param name="selector"></param>
65+ /// <param name="fileName"></param>
66+ /// <param name="format"></param>
67+ /// <param name="backgroundColor"></param>
68+ /// <param name="options"></param>
69+ /// <returns></returns>
70+ public async Task DownloadAsync ( string selector , string fileName = "capture" , string ? format = "png" , string ? backgroundColor = null , Dom2ImageOptions ? options = null )
71+ {
72+ try
73+ {
74+ _jsModule ??= await LoadModule ( ) ;
75+ await _jsModule . InvokeAsync < IJSStreamReference ? > ( "downloadAsync" , selector , fileName , format , backgroundColor , options ) ;
76+ }
77+ catch ( OperationCanceledException ) { }
78+ catch ( Exception ex )
79+ {
80+ logger . LogError ( ex , "{DownloadAsync} throw exception: {ex}" , nameof ( DownloadAsync ) , ex . Format ( ) ) ;
81+ }
82+ }
83+
6184 private Task < JSModule > LoadModule ( ) => runtime . LoadModule ( "./_content/BootstrapBlazor.Dom2Image/dom2image.js" ) ;
6285}
0 commit comments