如何在 .NET MAUI 中於 iOS 執行 OCR
.NET MAUI(多平台應用程式使用者介面)是 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 套件。
Install-Package IronOcr.iOS
透過 NuGet 安裝
Install-Package IronOcr.iOS
建立 .NET MAUI 專案
在"多平台"區段中,選擇 .NET MAUI App 並繼續。

包含 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 等平台上使用(若需在 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 應用程式專案
您可以下載本指南的完整程式碼。該檔案以 ZIP 形式提供,您可在 Visual Studio 中將其開啟為 .NET MAUI App 專案。
在 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"
常見問題
如何將 OCR 功能整合到 iOS 版的 .NET MAUI 應用程式中?
您可以透過 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 範例專案。此範例專案以 ZIP 檔案形式提供,您可在 Visual Studio 中開啟該檔案,以加速您的開發流程。
IronOCR 是否容易整合到現有專案中?
是的,IronOCR 非常容易整合到現有的 C# 專案中。透過詳盡的文件與技術支援,開發人員可以輕鬆地將 OCR 功能加入他們的應用程式中。
IronOCR 是否提供任何影像預處理功能?
IronOCR 包含用於提升 OCR 精準度的影像預處理功能,例如雜訊消除、旋轉校正及對比度調整。
IronOCR 能否用於雲端應用程式?
確實,IronOCR 可部署於雲端環境,使其適用於需要 OCR 功能的網路應用程式與服務。
如何使用 IronOCR 提升 OCR 結果的準確性?
若要提升 IronOCR 的 OCR 準確度,請確保輸入影像品質優良、使用適當的語言套件,並善用該程式庫的影像預處理功能。

