diff --git a/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.cs b/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.cs index df42c884..44fd37d4 100644 --- a/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.cs +++ b/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.cs @@ -103,6 +103,12 @@ public partial class PdfReader [Parameter] public Func? OnTwoPagesOneViewAsync { get; set; } + /// + /// 设置缩放倍率回调方法 + /// + [Parameter] + public Func? OnScaleChangedAsync { get; set; } + /// /// 获得/设置 更多按钮图标 默认为 null 使用内置图标 /// @@ -225,7 +231,8 @@ protected override async Task OnAfterRenderAsync(bool firstRender) TriggerPagesInit = OnPagesInitAsync != null, TriggerPagesLoaded = OnPagesLoadedAsync != null, TriggerPageChanged = OnPageChangedAsync != null, - TriggerTowPagesOnViewChanged = OnTwoPagesOneViewAsync != null + TriggerTowPagesOnViewChanged = OnTwoPagesOneViewAsync != null, + TriggerScaleChanged = OnScaleChangedAsync != null }); /// @@ -302,6 +309,19 @@ public async Task PageChanged(uint pageIndex) } } + /// + /// 缩放倍率更改回调方法 + /// + /// + [JSInvokable] + public async Task ScaleChanged(float val) + { + if (OnScaleChangedAsync != null) + { + await OnScaleChangedAsync(val); + } + } + /// /// 正在打印回调方法 /// diff --git a/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js b/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js index 5af82679..b80ecffe 100644 --- a/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js +++ b/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js @@ -349,7 +349,13 @@ const addEventBus = (el, pdfViewer, eventBus, invoke, options) => { }, true); - eventBus.on("scalechanging", evt => updateScaleValue(el, evt.scale)); + eventBus.on("scalechanging", async evt => { + updateScaleValue(el, evt.scale); + + if (options.triggerScaleChanged) { + await invoke.invokeMethodAsync("ScaleChanged", evt.scale); + } + }) eventBus.on("rotationchanging", evt => { const thumbnailsContainer = el.querySelector(".bb-view-thumbnails");