diff --git a/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.cs b/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.cs
index 44fd37d4..e9dbe20c 100644
--- a/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.cs
+++ b/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.cs
@@ -56,10 +56,10 @@ public partial class PdfReader
public uint CurrentPage { get; set; }
///
- /// 获得/设置 当前缩放倍率 默认 null 使用 100%
+ /// 获得/设置 当前旋转角度 默认 0 数值范围 0 90 180 270
///
[Parameter]
- public string? CurrentScale { get; set; }
+ public int CurrentRotation { get; set; }
///
/// 获得/设置 是否适配当前页面宽度 默认 false
@@ -109,6 +109,12 @@ public partial class PdfReader
[Parameter]
public Func? OnScaleChangedAsync { get; set; }
+ ///
+ /// 页面旋转回调方法
+ ///
+ [Parameter]
+ public Func? OnRotationChanged { get; set; }
+
///
/// 获得/设置 更多按钮图标 默认为 null 使用内置图标
///
@@ -142,6 +148,7 @@ public partial class PdfReader
private string? _docTitle;
private uint _currentPage;
+ private float _currentRotation;
private string? _url;
private string? _dropdownItemCheckIcon;
private string? _dropdownItemDefaultIcon;
@@ -195,6 +202,11 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
_currentPage = CurrentPage;
await NavigateToPageAsync(_currentPage);
}
+ if (_currentRotation != CurrentRotation)
+ {
+ _currentRotation = CurrentRotation;
+ await InvokeVoidAsync("rotate", Id, _currentRotation);
+ }
if (_showToolbar != ShowToolbar)
{
_showToolbar = ShowToolbar;
@@ -232,7 +244,8 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
TriggerPagesLoaded = OnPagesLoadedAsync != null,
TriggerPageChanged = OnPageChangedAsync != null,
TriggerTowPagesOnViewChanged = OnTwoPagesOneViewAsync != null,
- TriggerScaleChanged = OnScaleChangedAsync != null
+ TriggerScaleChanged = OnScaleChangedAsync != null,
+ TriggerRotationChanged = OnRotationChanged != null,
});
///
@@ -334,4 +347,18 @@ public async Task Printing()
await OnPrintingAsync();
}
}
+
+ ///
+ /// 页面旋转回调方法
+ ///
+ ///
+ ///
+ [JSInvokable]
+ public async Task RotationChanged(int angle)
+ {
+ if (OnRotationChanged != null)
+ {
+ await OnRotationChanged(angle);
+ }
+ }
}
diff --git a/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js b/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js
index b80ecffe..4ae1597c 100644
--- a/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js
+++ b/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js
@@ -357,11 +357,15 @@ const addEventBus = (el, pdfViewer, eventBus, invoke, options) => {
}
})
- eventBus.on("rotationchanging", evt => {
+ eventBus.on("rotationchanging", async evt => {
const thumbnailsContainer = el.querySelector(".bb-view-thumbnails");
if (thumbnailsContainer) {
thumbnailsContainer.style.setProperty('--thumb-rotate', `${evt.pagesRotation}deg`);
}
+
+ if (options.triggerRotationChanged) {
+ await invoke.invokeMethodAsync("RotationChanged", evt.pagesRotation);
+ }
})
}