@@ -25,6 +25,12 @@ public partial class PdfReader
2525 [ Parameter ]
2626 public bool ShowDownload { get ; set ; } = true ;
2727
28+ /// <summary>
29+ /// 获得/设置 是否显示打印按钮 默认 true 显示
30+ /// </summary>
31+ [ Parameter ]
32+ public bool ShowPrint { get ; set ; } = true ;
33+
2834 /// <summary>
2935 /// 获得/设置 是否显示缩略图 默认 true 显示
3036 /// </summary>
@@ -59,13 +65,13 @@ public partial class PdfReader
5965 /// 获得/设置 是否适配当前页面宽度 默认 false
6066 /// </summary>
6167 [ Parameter ]
62- public bool IsFitToPage { get ; set ; }
68+ public PdfReaderFitMode FitMode { get ; set ; }
6369
6470 /// <summary>
6571 /// 获得/设置 是否显示双页单视图按钮 默认 true 显示
6672 /// </summary>
6773 [ Parameter ]
68- public bool ShowTwoPagesOneViewButton { get ; set ; } = true ;
74+ public bool ShowTwoPagesOneView { get ; set ; } = true ;
6975
7076 /// <summary>
7177 /// 获得/设置 是否启用双页单视图模式 默认 false
@@ -86,7 +92,7 @@ public partial class PdfReader
8692 public Func < int , Task > ? OnPagesLoadedAsync { get ; set ; }
8793
8894 /// <summary>
89- /// 页面初始化回调方法
95+ /// 页码变化时回调方法
9096 /// </summary>
9197 [ Parameter ]
9298 public Func < uint , Task > ? OnPageChangedAsync { get ; set ; }
@@ -109,9 +115,6 @@ public partial class PdfReader
109115 [ Parameter ]
110116 public Func < Task > ? OnDownloadAsync { get ; set ; }
111117
112- [ Inject , NotNull ]
113- private DownloadService ? DownloadService { get ; set ; }
114-
115118 private string ? ClassString => CssBuilder . Default ( "bb-pdf-reader" )
116119 . AddClassFromAttributes ( AdditionalAttributes )
117120 . Build ( ) ;
@@ -122,20 +125,18 @@ public partial class PdfReader
122125 . Build ( ) ;
123126
124127 private string ? ViewBodyString => CssBuilder . Default ( "bb-view-body" )
125- . AddClass ( "fit-page " , IsFitToPage )
128+ . AddClass ( "fit-width " , FitMode == PdfReaderFitMode . PageHeight )
126129 . Build ( ) ;
127130
128131 private string ? _docTitle ;
129- private bool _isFitToPage ;
132+ private PdfReaderFitMode _fitMode ;
130133 private uint _currentPage ;
131134 private string ? _url ;
132135 private string ? _currentScale ;
133136 private bool _enableTwoPagesOneView ;
134137 private bool _showTwoPagesOneViewButton ;
135138 private string ? _twoPagesOneViewIcon ;
136139
137- private readonly HashSet < string > AllowedScaleValues = [ "page-actual" , "page-width" , "page-height" , "page-fit" , "auto" ] ;
138-
139140 private string CurrentPageString
140141 {
141142 get => CurrentPage . ToString ( CultureInfo . InvariantCulture ) ;
@@ -190,7 +191,7 @@ protected override void OnParametersSet()
190191 {
191192 base . OnParametersSet ( ) ;
192193
193- MoreButtonIcon ??= "fa-solid fa-ellipsis-vertical" ;
194+ MoreButtonIcon ??= "fa-solid fa-fw fa- ellipsis-vertical" ;
194195 _twoPagesOneViewIcon ??= "fa-solid fa-fw" ;
195196
196197 if ( CurrentPage == 0 )
@@ -211,12 +212,12 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
211212
212213 if ( firstRender )
213214 {
214- _isFitToPage = IsFitToPage ;
215+ _fitMode = FitMode ;
215216 _currentPage = CurrentPage ;
216217 _url = Url ;
217218 _currentScale = CurrentScale ;
218219 _enableTwoPagesOneView = EnableTwoPagesOneView ;
219- _showTwoPagesOneViewButton = ShowTwoPagesOneViewButton ;
220+ _showTwoPagesOneViewButton = ShowTwoPagesOneView ;
220221 }
221222
222223 if ( _url != Url )
@@ -225,10 +226,10 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
225226 await InvokeInitAsync ( ) ;
226227 }
227228
228- if ( _isFitToPage != IsFitToPage )
229+ if ( _fitMode != FitMode )
229230 {
230- _isFitToPage = IsFitToPage ;
231- await TriggerFit ( _isFitToPage ? "fitToPage" : "fitToWidth" ) ;
231+ _fitMode = FitMode ;
232+ await InvokeVoidAsync ( "setScaleValue" , Id , _fitMode . ToDescriptionString ( ) ) ;
232233 }
233234 if ( _currentPage != CurrentPage )
234235 {
@@ -245,9 +246,9 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
245246 _enableTwoPagesOneView = EnableTwoPagesOneView ;
246247 await InvokeVoidAsync ( "setPages" , Id , _enableTwoPagesOneView ) ;
247248 }
248- if ( _showTwoPagesOneViewButton != ShowTwoPagesOneViewButton )
249+ if ( _showTwoPagesOneViewButton != ShowTwoPagesOneView )
249250 {
250- _showTwoPagesOneViewButton = ShowTwoPagesOneViewButton ;
251+ _showTwoPagesOneViewButton = ShowTwoPagesOneView ;
251252 await InvokeVoidAsync ( "setPages" , Id , _enableTwoPagesOneView ) ;
252253 }
253254 }
@@ -259,7 +260,7 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
259260 protected override Task InvokeInitAsync ( ) => InvokeVoidAsync ( "init" , Id , Interop , new
260261 {
261262 Url ,
262- IsFitToPage ,
263+ FitMode ,
263264 EnableThumbnails ,
264265 TriggerPagesInit = OnPagesInitAsync != null ,
265266 TriggerPagesLoaded = OnPagesLoadedAsync != null ,
@@ -277,12 +278,7 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
277278 /// <summary>
278279 /// 适应页面宽度
279280 /// </summary>
280- public void FitToPage ( ) => IsFitToPage = true ;
281-
282- /// <summary>
283- /// 适应文档宽度
284- /// </summary>
285- public void FitToWidth ( ) => IsFitToPage = false ;
281+ public void SetFitMode ( PdfReaderFitMode mode ) => FitMode = mode ;
286282
287283 /// <summary>
288284 /// 旋转页面方法
@@ -310,8 +306,6 @@ private async Task OnDownload()
310306 }
311307 }
312308
313- private Task TriggerFit ( string methodName ) => InvokeVoidAsync ( methodName , Id ) ;
314-
315309 /// <summary>
316310 /// 页面开始初始化时回调方法
317311 /// </summary>
0 commit comments