如何在 .NET MAUI 中對 iOS 裝置執行 OCR
.NET MAUI(多平台應用程式 UI)是 Xamarin.Forms 框架的演進版本,旨在利用 .NET 建立適用於 Android、iOS、macOS 和 Windows 的跨平台應用程式。 MAUI 旨在簡化建立可在多個平台上運行的原生使用者介面的過程。
IronOcr.iOS 軟體包為 iOS 帶來了 OCR 支援!
如何在 .NET MAUI 中在 iOS 上使用 IronOCR
- 下載 C# 庫以在 iOS 上執行 OCR。
- 創建 .NET MAUI App 項目
- 編輯 XAML 文件以顯示激活按鈕和輸出文本
- 編輯相應的 C# 文件以執行 OCR
- 下載示例項目以快速開始
IronOCR iOS 套件
IronOcr.iOS 套件透過 .NET 跨平台專案在 iOS 裝置上啟用 OCR 功能。 不需要原版 IronOCR 軟體包。
安裝 IronOcr.iOS 包
使用 NuGet 安裝
安裝 IronOcr.iOS 包
建立一個 .NET MAUI 項目
在"多平台"部分,選擇".NET MAUI 應用程式"並繼續。
包含 IronOCR.iOS 庫
可以透過多種方式新增庫。 最簡單的方法或許是使用 NuGet。
- 在 Visual Studio 中,以滑鼠右鍵按一下"依賴項 > NuGet",然後選擇"管理 NuGet 套件..."。
- 選擇"瀏覽"選項卡,搜尋"IronOcr.iOS"。
- 選擇"IronOcr.iOS"軟體包,然後點選"新增軟體包"。
為防止與其他平台出現問題,請修改csproj文件,使其僅在面向 iOS 平台時包含該軟體套件。 為了做到這一點:
- 右鍵點選專案的 *.csproj 文件,然後選擇"編輯專案文件"。
建立一個新的
ItemGroup元素,如下圖所示:<ItemGroup Condition="$(TargetFramework.Contains('ios')) == true"> <PackageReference Include="IronOcr.iOS" Version="YOUR_PACKAGE_VERSION" /> </ItemGroup><ItemGroup Condition="$(TargetFramework.Contains('ios')) == true"> <PackageReference Include="IronOcr.iOS" Version="YOUR_PACKAGE_VERSION" /> </ItemGroup>XML- 將"IronOcr.iOS" PackageReference 移到我們剛剛建立的
ItemGroup中。
上述步驟將阻止"IronOcr.iOS"軟體套件在例如Android平台上使用(為此,請改用IronOcr.Android )。
編輯"MainPage.xaml"
編輯 XAML 文件,使其顯示一個按鈕和一個標籤,用於顯示 OCR 結果。 舉例來說
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MAUIIronOCRiOSSample.MainPage">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button
Text="Import File"
Clicked="ReadFileOnImport"
Grid.Row="0"
HorizontalOptions="Center"
Margin="20, 20, 20, 10"/>
<ScrollView
Grid.Row="1"
BackgroundColor="LightGray"
Padding="10"
Margin="10, 10, 10, 30">
<Label x:Name="OutputText"/>
</ScrollView>
</Grid>
</ContentPage><?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MAUIIronOCRiOSSample.MainPage">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button
Text="Import File"
Clicked="ReadFileOnImport"
Grid.Row="0"
HorizontalOptions="Center"
Margin="20, 20, 20, 10"/>
<ScrollView
Grid.Row="1"
BackgroundColor="LightGray"
Padding="10"
Margin="10, 10, 10, 30">
<Label x:Name="OutputText"/>
</ScrollView>
</Grid>
</ContentPage>編輯"MainPage.xaml.cs"
首先實例化IronTesseract物件。 請確保在類別中初始化IronTesseract一次,如下面的程式碼所示。 直接在方法中實例化它效率不高,可能會導致意想不到的錯誤。 然後,使用FilePicker.PickAsync方法選擇一個檔案。從FileResult中開啟一個流進行讀取。 建立一個新的OcrInput對象,並使用該物件載入圖像。 使用 Tesseract 實例對圖像執行 OCR 並傳回文字。 最後,將結果文字顯示在標籤中。
目前該功能僅限於圖像檔案。 該軟體包目前尚不支援PDF文件。 有鑑於此,任何與 PDF 文件相關的配置都應保持停用狀態。
using System;
using IronOcr;
using Microsoft.Maui.Controls;
namespace MAUIIronOCRiOSSample;
public partial class MainPage : ContentPage
{
// Initialize IronTesseract once in a class
private IronTesseract ocrTesseract = new IronTesseract();
public MainPage()
{
InitializeComponent();
// Apply license key
IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01";
}
private async void ReadFileOnImport(object sender, EventArgs e)
{
try
{
var options = new PickOptions
{
PickerTitle = "Please select a file"
};
var result = await FilePicker.PickAsync(options);
if (result != null)
{
using var stream = await result.OpenReadAsync();
// Instantiate OcrInput
using var ocrInput = new OcrInput();
// Load image stream
ocrInput.LoadImage(stream);
// Perform OCR
var ocrResult = ocrTesseract.Read(ocrInput);
OutputText.Text = ocrResult.Text;
}
}
catch (Exception ex)
{
// Handle exceptions
System.Diagnostics.Debug.WriteLine(ex);
}
}
}using System;
using IronOcr;
using Microsoft.Maui.Controls;
namespace MAUIIronOCRiOSSample;
public partial class MainPage : ContentPage
{
// Initialize IronTesseract once in a class
private IronTesseract ocrTesseract = new IronTesseract();
public MainPage()
{
InitializeComponent();
// Apply license key
IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01";
}
private async void ReadFileOnImport(object sender, EventArgs e)
{
try
{
var options = new PickOptions
{
PickerTitle = "Please select a file"
};
var result = await FilePicker.PickAsync(options);
if (result != null)
{
using var stream = await result.OpenReadAsync();
// Instantiate OcrInput
using var ocrInput = new OcrInput();
// Load image stream
ocrInput.LoadImage(stream);
// Perform OCR
var ocrResult = ocrTesseract.Read(ocrInput);
OutputText.Text = ocrResult.Text;
}
}
catch (Exception ex)
{
// Handle exceptions
System.Diagnostics.Debug.WriteLine(ex);
}
}
}Imports System
Imports IronOcr
Imports Microsoft.Maui.Controls
Namespace MAUIIronOCRiOSSample
Partial Public Class MainPage
Inherits ContentPage
' Initialize IronTesseract once in a class
Private ocrTesseract As New IronTesseract()
Public Sub New()
InitializeComponent()
' Apply license key
IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01"
End Sub
Private Async Sub ReadFileOnImport(ByVal sender As Object, ByVal e As EventArgs)
Try
Dim options = New PickOptions With {.PickerTitle = "Please select a file"}
Dim result = Await FilePicker.PickAsync(options)
If result IsNot Nothing Then
Dim stream = Await result.OpenReadAsync()
' Instantiate OcrInput
Dim ocrInput As New OcrInput()
' Load image stream
ocrInput.LoadImage(stream)
' Perform OCR
Dim ocrResult = ocrTesseract.Read(ocrInput)
OutputText.Text = ocrResult.Text
End If
Catch ex As Exception
' Handle exceptions
System.Diagnostics.Debug.WriteLine(ex)
End Try
End Sub
End Class
End Namespace最後,將建置目標切換到 iOS 模擬器並運行專案。
運行專案
這將向您展示如何運行專案並執行 OCR。

下載 .NET MAUI 應用程式項目
您可以下載本指南的完整程式碼。它以壓縮檔案的形式提供,您可以在 Visual Studio 中將其作為 .NET MAUI 應用程式專案開啟。
在 Avalonia 中使用 IronOcr.iOS
在 Avalonia 中設定 IronOcr.iOS 與 MAUI 類似,但有一個關鍵區別:除了最新的 .NET SDK 版本之外,還需要安裝.NET SDK 8.0.101才能成功運行 IronOcr.iOS。 之後,IronOcr.iOS 可以在 Avalonia 專案中使用,設定方式與上述相同。
如果您想在 Android 上執行 OCR,請參閱以下文章以了解更多資訊:"如何在 .NET MAUI 中對 Android 執行 OCR "
常見問題解答
如何在 iOS 的 .NET MAUI 應用程式中整合 OCR 功能?
您可以使用 IronOCR.iOS 套件將 OCR 功能整合到 iOS 的 .NET MAUI 應用程式中。在 Visual Studio 中透過 NuGet 安裝,然後修訂專案檔案,有條件地針對 iOS 平台包含該套件。使用 IronTesseract 來處理影像並擷取文字。
我可以使用 IronOCR.iOS 套件處理 PDF 文件嗎?
不可以,IronOCR.iOS 套件目前僅限於處理影像檔案,不支援 PDF 文件。請確保您的專案中已停用任何 PDF 相關的設定。
使用 .NET MAUI 為 iOS 應用程式設定 OCR 涉及哪些步驟?
使用 .NET MAUI 為 iOS 應用程式設定 OCR 涉及透過 NuGet 下載 IronOcr.iOS 套件、修改專案檔案以有條件地包含 iOS 專案套件,以及編輯您的 MainPage.xaml 和 MainPage.xaml.cs 檔案以建立使用者介面並處理 OCR 處理。
在 Avalonia 專案中使用 IronOCR 有哪些額外要求?
在 Avalonia 專案中使用 IronOCR 時,您需要確保已安裝最新的 .NET SDK 版本,同時還要安裝 .NET SDK 8.0.101。此設定與 MAUI 相似,但需要此額外的 SDK。
如何在 .NET MAUI 專案中使用 IronOCR 對影像執行 OCR?
在 .NET MAUI 專案中,使用 IronTesseract 物件在影像上執行 OCR。使用FilePicker.PickAsync來選擇一個影像檔案,將它載入一個OcrInput物件,然後再使用IronTesseract來讀取影像並擷取文字。
是否有使用 .NET MAUI 在 iOS 上實作 OCR 的範例專案?
是的,您可以從 Iron Software 網站下載使用 IronOCR.iOS 的 .NET MAUI 專案範例。這個範例專案是以壓縮檔的形式提供,您可以在 Visual Studio 中開啟,以加快您的開發進程。






