How to Perform OCR on iOS in .NET MAUI

This article was translated from English: Does it need improvement?
Translated
View the article in English
class="container-fluid">
class="row">
class="col-md-2"> iOS

.NET MAUI(多平台應用UI)是Xamarin.Forms框架的升級版,旨在使用.NET創建適用於Android、iOS、macOS和Windows的跨平台應用程序。 MAUI 旨在簡化建立可在多個平台上運行的原生用戶界面的過程。

IronOcr.iOS package 帶來了對 iOS 的 OCR 支持!

class="hsg-featured-snippet">

如何在 .NET MAUI 上使用 IronOCR

  1. 下載 C# 庫以在 iOS 上執行 OCR
  2. 創建一個 .NET MAUI 應用程式專案
  3. 編輯 XAML 文件以顯示啟用按鈕和輸出文本
  4. 編輯相應的 C# 文件以執行 OCR
  5. 下載範例專案以快速啟動

IronOCR iOS 套件

IronOcr.iOS package 使 iOS 設備可以通過 .NET 跨平台專案啟用 OCR 功能。 不需要使用標準的IronOCR包。

Install-Package IronOcr.iOS

class="products-download-section">
data-modal-id="trial-license-after-download">
class="product-image"> C# NuGet Library for PDF
class="product-info">

安裝方式 NuGet

class="copy-nuget-row">
Install-Package IronOcr.iOS
class="copy-button">
class="nuget-link">nuget.org/packages/IronOcr.iOS/

創建 .NET MAUI 項目

在多平台部分,選擇 .NET MAUI 應用並繼續。

創建 .NET MAUI 應用程式專案

包含 IronOCR.iOS 庫

可以通過多種方式添加該庫。 最簡單的可能是使用 NuGet。

  1. 在 Visual Studio 中,右鍵單擊“Dependencies > Nuget”並選擇“管理 NuGet 套件...”。
  2. 選擇“瀏覽”選項卡並搜索“IronOcr.iOS”。
  3. 選擇“IronOcr.iOS”包並點擊“添加套件”。

下載 IronOcr.iOS 套件

為了避免與其他平台發生問題,修改 csproj 文件以僅在針對 iOS 平台時包含該套件。 要做到這一點:

  1. 右鍵點擊項目的 *.csproj 文件並選擇 "編輯專案文件"。
  2. 創建一個新的 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
  3. 將“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>
XML

編輯"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
$vbLabelText   $csharpLabel

最後,將構建目標切換到 iOS 模擬器並運行項目。

運行項目

這將展示如何運行項目並執行OCR。

執行 .NET MAUI 應用程式專案

下載 .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

常見問題解答

如何將 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 專案範例。此範例專案以壓縮檔案的形式提供,您可以使用 Visual Studio 開啟它,從而加快您的開發過程。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 5,044,537 | 版本: 2025.11 剛剛發布