@@ -4,6 +4,8 @@ public partial class PdfViewer : BlazorBootstrapComponentBase
44{
55 #region Fields and Constants
66
7+ private int defaultZoomLevel = 8 ;
8+
79 private int maxZoomLevel = 17 ;
810
911 private int minZoomLevel = 1 ;
@@ -13,13 +15,14 @@ public partial class PdfViewer : BlazorBootstrapComponentBase
1315 private Orientation ? oldOrientation ;
1416
1517 private int pageNumber = 0 ;
18+
1619 private int pagesCount = 0 ;
1720
1821 private double rotation = 0 ;
1922
2023 private double scale = 1.0 ;
21- private int defaultZoomLevel = 8 ;
2224 private int zoomLevel = 8 ;
25+
2326 private string zoomPercentage = "100%" ;
2427
2528 #endregion
@@ -38,14 +41,12 @@ protected override async Task OnInitializedAsync()
3841 protected override async Task OnParametersSetAsync ( )
3942 {
4043 if ( Rendered )
41- {
4244 if ( ! Orientation . Equals ( oldOrientation ) )
4345 {
4446 oldOrientation = Orientation ;
4547 rotation = Orientation == Orientation . Portrait ? 0 : - 90 ;
4648 await PdfViewerJsInterop . RotateAsync ( objRef ! , ElementId ! , rotation ) ;
4749 }
48- }
4950
5051 await base . OnParametersSetAsync ( ) ;
5152 }
@@ -119,6 +120,15 @@ private async Task PageNumberChangedAsync(int value)
119120
120121 private async Task PrintAsync ( ) => await PdfViewerJsInterop . PrintAsync ( objRef ! , ElementId ! , Url ! ) ;
121122
123+ private async Task ResetZoomAsync ( )
124+ {
125+ zoomLevel = defaultZoomLevel ;
126+ var zp = GetZoomPercentage ( defaultZoomLevel ) ;
127+ zoomPercentage = $ "{ zp } %";
128+ scale = 0.01 * zp ;
129+ await PdfViewerJsInterop . ZoomInOutAsync ( objRef ! , ElementId ! , scale ) ;
130+ }
131+
122132 private async Task RotateClockwiseAsync ( )
123133 {
124134 rotation += 90 ;
@@ -179,15 +189,6 @@ private async Task ZoomOutAsync()
179189 await PdfViewerJsInterop . ZoomInOutAsync ( objRef ! , ElementId ! , scale ) ;
180190 }
181191
182- private async Task ResetZoomAsync ( )
183- {
184- zoomLevel = defaultZoomLevel ;
185- var zp = GetZoomPercentage ( defaultZoomLevel ) ;
186- zoomPercentage = $ "{ zp } %";
187- scale = 0.01 * zp ;
188- await PdfViewerJsInterop . ZoomInOutAsync ( objRef ! , ElementId ! , scale ) ;
189- }
190-
191192 #endregion
192193
193194 #region Properties, Indexers
@@ -198,28 +199,32 @@ private async Task ResetZoomAsync()
198199 /// <summary>
199200 /// This event fires immediately after the PDF document is loaded.
200201 /// </summary>
201- [ Parameter ] public EventCallback < PdfViewerEventArgs > OnDocumentLoaded { get ; set ; }
202+ [ Parameter ]
203+ public EventCallback < PdfViewerEventArgs > OnDocumentLoaded { get ; set ; }
202204
203205 /// <summary>
204206 /// This event fires immediately after the page is changed.
205207 /// </summary>
206- [ Parameter ] public EventCallback < PdfViewerEventArgs > OnPageChanged { get ; set ; }
208+ [ Parameter ]
209+ public EventCallback < PdfViewerEventArgs > OnPageChanged { get ; set ; }
207210
208211 /// <summary>
209- /// Provides JavaScript interop functionality for the PDF viewer.
212+ /// Gets or sets the preferred orientation for the PDF viewer.
210213 /// </summary>
211- [ Inject ] private PdfViewerJsInterop PdfViewerJsInterop { get ; set ; } = default ! ;
214+ [ Parameter ]
215+ public Orientation Orientation { get ; set ; }
212216
213217 /// <summary>
214- /// Gets or sets the URL of the PDF document to be displayed .
218+ /// Provides JavaScript interop functionality for the PDF viewer .
215219 /// </summary>
216- [ Parameter ] public string ? Url { get ; set ; }
220+ [ Inject ]
221+ private PdfViewerJsInterop PdfViewerJsInterop { get ; set ; } = default ! ;
217222
218223 /// <summary>
219- /// Gets or sets the preferred orientation for the PDF viewer .
224+ /// Gets or sets the URL of the PDF document to be displayed .
220225 /// </summary>
221226 [ Parameter ]
222- public Orientation Orientation { get ; set ; }
227+ public string ? Url { get ; set ; }
223228
224229 #endregion
225230}
0 commit comments