From 6872be72a0d9df95885003c90680a0663e5237ff Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Thu, 28 Aug 2025 10:17:30 +0800 Subject: [PATCH 1/4] =?UTF-8?q?doc:=20=E6=96=87=E6=A1=A3=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Samples/BaiduOcr.razor | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/BootstrapBlazor.Server/Components/Samples/BaiduOcr.razor b/src/BootstrapBlazor.Server/Components/Samples/BaiduOcr.razor index ce35e36a6f8..3c391ae3f16 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/BaiduOcr.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/BaiduOcr.razor @@ -8,10 +8,8 @@

@Localizer["SubTitle"]

@Localizer["BaiduOcrDesc"] - - - -

@Localizer["BaiduOcrIntro"]

+ +

@Localizer["BaiduOcrIntro"]

@((MarkupString)Localizer["BaiduOcrStep1"].Value)

@((MarkupString)Localizer["BaiduOcrStep2"].Value)

@@ -128,7 +126,7 @@ - From e3abd74b1b8d0bf8410abff78a96084e8ed6776b Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Thu, 28 Aug 2025 10:57:10 +0800 Subject: [PATCH 2/4] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Samples/BaiduOcr.razor | 21 ++++++++++++----- .../Components/Samples/BaiduOcr.razor.cs | 23 +++++++++++-------- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/BootstrapBlazor.Server/Components/Samples/BaiduOcr.razor b/src/BootstrapBlazor.Server/Components/Samples/BaiduOcr.razor index 3c391ae3f16..3a527a26ae7 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/BaiduOcr.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/BaiduOcr.razor @@ -1,7 +1,4 @@ @page "/ocr" -@inject IBaiduOcr OcrService -@inject IStringLocalizer Localizer -@inject ToastService ToastService

@Localizer["Title"]

@@ -10,11 +7,23 @@ @Localizer["BaiduOcrDesc"]

@Localizer["BaiduOcrIntro"]

-

@((MarkupString)Localizer["BaiduOcrStep1"].Value)

-

@((MarkupString)Localizer["BaiduOcrStep2"].Value)

+

@((MarkupString)Localizer["BaiduOcrStep1"].Value)

+

@((MarkupString)Localizer["BaiduOcrStep1Desc"].Value)

+
{
+    "BaiduOcrOption": {
+      "AppId": "",
+      "ApiKey": "",
+      "Secret": ""
+    }
+}
+

@((MarkupString)Localizer["BaiduOcrStep2"].Value)

+
[Inject, NotNull]
+private IBaiduOcr? OcrService { get; set; }
+ +

@((MarkupString)Localizer["BaiduOcrStep3"].Value)

- + @if (Invoice != null) {
diff --git a/src/BootstrapBlazor.Server/Components/Samples/BaiduOcr.razor.cs b/src/BootstrapBlazor.Server/Components/Samples/BaiduOcr.razor.cs index aa4a2ca02c9..9d1c8501063 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/BaiduOcr.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/BaiduOcr.razor.cs @@ -12,16 +12,21 @@ namespace BootstrapBlazor.Server.Components.Samples; /// public partial class BaiduOcr : IDisposable { - private InvoiceEntity? Invoice { get; set; } + [Inject, NotNull] + private IBaiduOcr? OcrService { get; set; } - /*以下示例为本站特殊处理逻辑可不参考*/ - private bool IsLoading { get; set; } + [Inject, NotNull] + private IStringLocalizer? Localizer { get; set; } - private string ButtonIcon { get; } = "fa-solid fa-cloud-arrow-up"; + [Inject, NotNull] + private ToastService? ToastService { get; set; } - private string LoadingIcon { get; } = "fa-solid fa-spinner fa-spin-pulse"; + private InvoiceEntity? Invoice { get; set; } + + /*以下示例为本站特殊处理逻辑可不参考*/ + private bool _isLoading; - private string Icon => IsLoading ? LoadingIcon : ButtonIcon; + private string Icon => _isLoading ? "fa-solid fa-spinner fa-spin-pulse" : "fa-solid fa-cloud-arrow-up"; /// /// 取消请求令牌 @@ -33,12 +38,12 @@ private async Task OnClickToUploadBlock(UploadFile file) if (file.File != null) { // 设置 按钮禁用 - IsLoading = true; + _isLoading = true; StateHasChanged(); // 获得上传文件 var payload = await file.GetBytesAsync(file.File.Size); - if (payload != null && payload.Length > 0) + if (payload is { Length: > 0 }) { try { @@ -60,7 +65,7 @@ private async Task OnClickToUploadBlock(UploadFile file) } } - IsLoading = false; + _isLoading = false; StateHasChanged(); } } From 96e1898bf135e348fe5c2149fb64ec188fcfe2cb Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Thu, 28 Aug 2025 10:57:18 +0800 Subject: [PATCH 3/4] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor.Server/Locales/zh-CN.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/BootstrapBlazor.Server/Locales/zh-CN.json b/src/BootstrapBlazor.Server/Locales/zh-CN.json index 8f0312dbdb7..1cff7d22027 100644 --- a/src/BootstrapBlazor.Server/Locales/zh-CN.json +++ b/src/BootstrapBlazor.Server/Locales/zh-CN.json @@ -650,8 +650,10 @@ "VatInvoiceIntro": "通过上传增值税发票图片调用百度 Ocr 接口进行文字识别", "BaiduOcrDesc": "本组件通过调用 Baidu AI 平台文字识别接口进行增值税发票文字识别。支持对增值税普票、专票、全电发票(新版全国统一电子发票,专票/普票)、卷票、区块链发票的所有字段进行结构化识别,包括发票基本信息、销售方及购买方信息、商品信息、价税信息等,其中五要素字段的识别准确率超过 99.9%; 同时,支持对增值税卷票的 21 个关键字段进行识别,包括发票类型、发票代码、发票号码、机打号码、机器编号、收款人、销售方名称、销售方纳税人识别号、开票日期、购买方名称、购买方纳税人识别号、项目、单价、数量、金额、税额、合计金额(小写)、合计金额(大写)、校验码、省、市,四要素字段的识别准确率可达95%。上传图片不能超过 4M", "BaiduOcrIntro": "使用方法", - "BaiduOcrStep1": "1. 通过注入服务获得 IBaiduOcr 实例", - "BaiduOcrStep2": "2. 调用服务相对应的识别方法即可", + "BaiduOcrStep1": "1. 配置 BaiduOcrOption", + "BaiduOcrStep1Desc": "更新 appsettings.json 文件", + "BaiduOcrStep2": "2. 通过注入服务获得 IBaiduOcr 实例", + "BaiduOcrStep3": "3. 调用服务相对应的识别方法即可", "VerifyVatInvoiceTitle": "增值税验真", "VerifyVatInvoiceIntro": "通过调用 IBaiduOcr 服务实例的发票验真方法 VerifyInvoiceAsync 返回 InvoiceVerifyResult 其属性 Validtrue 时为真" }, From 189dc3e2c99a47d81f8114871d83744f5102b6ba Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Thu, 28 Aug 2025 11:10:54 +0800 Subject: [PATCH 4/4] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor.Server/Locales/en-US.json | 4 +++- src/BootstrapBlazor.Server/Locales/zh-CN.json | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/BootstrapBlazor.Server/Locales/en-US.json b/src/BootstrapBlazor.Server/Locales/en-US.json index e9e7490f9bd..36fa83486b2 100644 --- a/src/BootstrapBlazor.Server/Locales/en-US.json +++ b/src/BootstrapBlazor.Server/Locales/en-US.json @@ -650,7 +650,9 @@ "BaiduOcrDesc": "本组件通过调用 Baidu AI 平台文字识别接口进行增值税发票文字识别。支持对增值税普票、专票、全电发票(新版全国统一电子发票,专票/普票)、卷票、区块链发票的所有字段进行结构化识别,包括发票基本信息、销售方及购买方信息、商品信息、价税信息等,其中五要素字段的识别准确率超过 99.9%; 同时,支持对增值税卷票的 21 个关键字段进行识别,包括发票类型、发票代码、发票号码、机打号码、机器编号、收款人、销售方名称、销售方纳税人识别号、开票日期、购买方名称、购买方纳税人识别号、项目、单价、数量、金额、税额、合计金额(小写)、合计金额(大写)、校验码、省、市,四要素字段的识别准确率可达95%。上传图片不能超过 4M", "BaiduOcrIntro": "Usage", "BaiduOcrStep1": "1. Get IBaiduOcr instance by inject service", - "BaiduOcrStep2": "2. Call IBaiduOcr instance method", + "BaiduOcrStep1Desc": "Update the appsettings.json file with the following configuration. Please register on Baidu AI Open Platform and apply for relevant parameter values.", + "BaiduOcrStep2": "2. Get IBaiduOcr instance by inject service", + "BaiduOcrStep3": "3. Call IBaiduOcr instance method", "VerifyVatInvoiceTitle": "增值税验真", "VerifyVatInvoiceIntro": "通过调用 IBaiduOcr 服务实例的发票验真方法 VerifyInvoiceAsync 返回 InvoiceVerifyResult 其属性 Validtrue 时为真" }, diff --git a/src/BootstrapBlazor.Server/Locales/zh-CN.json b/src/BootstrapBlazor.Server/Locales/zh-CN.json index 1cff7d22027..1a656900f65 100644 --- a/src/BootstrapBlazor.Server/Locales/zh-CN.json +++ b/src/BootstrapBlazor.Server/Locales/zh-CN.json @@ -465,7 +465,6 @@ "MultipleMaskContainerDesc": "组件内自己设置 Mask 组件,调用 MaskService 实例方法 Show 时,通过第二个参数指定 Mask 实例即可", "MaskCloseTitle": "代码关闭弹窗", "MaskCloseIntro": "通过使用 DialogCloseButton 组件或者级联参数关闭弹窗" - }, "BootstrapBlazor.Server.Components.Samples.Messages": { "MessagesTitle": "Message 消息提示", @@ -651,7 +650,7 @@ "BaiduOcrDesc": "本组件通过调用 Baidu AI 平台文字识别接口进行增值税发票文字识别。支持对增值税普票、专票、全电发票(新版全国统一电子发票,专票/普票)、卷票、区块链发票的所有字段进行结构化识别,包括发票基本信息、销售方及购买方信息、商品信息、价税信息等,其中五要素字段的识别准确率超过 99.9%; 同时,支持对增值税卷票的 21 个关键字段进行识别,包括发票类型、发票代码、发票号码、机打号码、机器编号、收款人、销售方名称、销售方纳税人识别号、开票日期、购买方名称、购买方纳税人识别号、项目、单价、数量、金额、税额、合计金额(小写)、合计金额(大写)、校验码、省、市,四要素字段的识别准确率可达95%。上传图片不能超过 4M", "BaiduOcrIntro": "使用方法", "BaiduOcrStep1": "1. 配置 BaiduOcrOption", - "BaiduOcrStep1Desc": "更新 appsettings.json 文件", + "BaiduOcrStep1Desc": "更新 appsettings.json 文件,配置如下:相关参数值请在 百度 AI 开放平台 注册后开通申请", "BaiduOcrStep2": "2. 通过注入服务获得 IBaiduOcr 实例", "BaiduOcrStep3": "3. 调用服务相对应的识别方法即可", "VerifyVatInvoiceTitle": "增值税验真",