如何在 .NET MAUI 中對 iOS 裝置執行 OCR

This article was translated from English: Does it need improvement?
Translated
View the article in English
iOS

.NET MAUI(多平台應用程式 UI)是 Xamarin.Forms 框架的演進版本,旨在利用 .NET 建立適用於 Android、iOS、macOS 和 Windows 的跨平台應用程式。 MAUI 旨在簡化建立可在多個平台上運行的原生使用者介面的過程。

IronOcr.iOS 軟體包為 iOS 帶來了 OCR 支援!

IronOCR iOS 套件

IronOcr.iOS 套件透過 .NET 跨平台專案在 iOS 裝置上啟用 OCR 功能。 不需要原版 IronOCR 軟體包。

安裝 IronOcr.iOS 包
C# NuGet PDF 庫

使用 NuGet 安裝

安裝 IronOcr.iOS 包

建立一個 .NET MAUI 項目

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

建立 .NET MAUI 應用程式項目

包含 IronOCR.iOS 庫

可以透過多種方式新增庫。 最簡單的方法或許是使用 NuGet。

  1. 在 Visual Studio 中,以滑鼠右鍵按一下"依賴項 > 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);
        }
    }
}
$vbLabelText   $csharpLabel

最後,將建置目標切換到 iOS 模擬器並運行專案。

運行專案

這將向您展示如何運行專案並執行 OCR。

Execute .NET MAUI App project

下載 .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擁有卡爾頓大學電腦科學學士學位,專長於前端開發,精通Node.js、TypeScript、JavaScript和React。他熱衷於打造直覺美觀的使用者介面,喜歡使用現代框架,並擅長撰寫結構清晰、視覺效果出色的使用者手冊。

除了開發工作之外,柯蒂斯對物聯網 (IoT) 也抱有濃厚的興趣,致力於探索硬體和軟體整合的創新方法。閒暇時,他喜歡玩遊戲和製作 Discord 機器人,將他對科技的熱愛與創造力結合。

準備好開始了嗎?
Nuget 下載 5,299,091 | 版本: 2025.12 剛剛發布