如何在 .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中,右键单击"Dependencies > Nuget"并选择"Manage NuGet Packages ..."。
- 选择"浏览"选项卡,搜索"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 "
常见问题解答
如何将 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 中打开,以加速您的开发过程。






