.NET MAUI Android에서 언어 팩이 발견되지 않음
중국어와 같은 비영어 언어를 .NET MAUI Android 프로젝트에서 로드할 때, Assets/tessdata에 학습된 데이터가 있고 AndroidAsset로 표시되어 있어도 런타임에 실패할 수 있습니다.
System.IO.FileNotFoundException: Language Pack Not Found: chi_sim.traineddata
Visual Studio Code나 CLI에서 MAUI Android 프로젝트를 빌드하면 IronOCR가 필요로 하는 언어 데이터 파일을 해결하는 것을 생략할 수 있습니다. *.traineddata 파일들이 APK에 포함되지 않아서 엔진이 런타임에 찾을 수 없습니다.
해결책
1. Visual Studio 2022에서 빌드
전체 Visual Studio 2022 IDE(v17.10 이상)에서 프로젝트를 열고 빌드하세요. 전체 IDE는 빌드 중 Android APK에 종속성을 포함시켜 CLI와 VS Code 경로에서 누락될 수 있습니다.
2. OcrData 폴더 이동
빌드 후, OcrData 폴더를 bin에서 프로젝트 루트로 이동하십시오. 예를 들어 OcrData/chi_sim.traineddata.
ProjectRoot/
├── OcrData/
│ └── chi_sim.traineddata
├── Resources/
│ └── Fonts/
│ └── NotoSansSC-Regular.ttf
├── MyMauiApp.csproj
3. 훈련된 데이터를 Android 자산으로 등록
재배치된 파일들을 .csproj에 추가하여 APK와 함께 전송되도록 하십시오:
<ItemGroup>
<AndroidAsset Include="OcrData\chi_sim.traineddata" />
<AndroidAsset Include="ocrData\chi_tra.traineddata" />
</ItemGroup>
<ItemGroup>
<AndroidAsset Include="OcrData\chi_sim.traineddata" />
<AndroidAsset Include="ocrData\chi_tra.traineddata" />
</ItemGroup>
4. 문자 지원 폰트 추가
인식된 텍스트는 앱 UI에서 렌더링할 수 있는 폰트가 필요합니다. Noto Sans SC와 같은 글꼴을 Resources/Fonts에 추가하고 MauiProgram.cs에 등록하십시오:
using Microsoft.Extensions.Logging;
namespace MauiApp2
{
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
});
#if DEBUG
builder.Logging.AddDebug();
#endif
return builder.Build();
}
}
}
using Microsoft.Extensions.Logging;
namespace MauiApp2
{
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
});
#if DEBUG
builder.Logging.AddDebug();
#endif
return builder.Build();
}
}
}
Imports Microsoft.Extensions.Logging
Namespace MauiApp2
Public Module MauiProgram
Public Function CreateMauiApp() As MauiApp
Dim builder = MauiApp.CreateBuilder()
builder _
.UseMauiApp(Of App)() _
.ConfigureFonts(Sub(fonts)
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular")
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold")
End Sub)
#If DEBUG Then
builder.Logging.AddDebug()
#End If
Return builder.Build()
End Function
End Module
End Namespace
디버그 팁
- NuGet 패키지를 확인하십시오:
IronOcr.Android이 설치되고 복원되었는지 확인하십시오. - 언어 파일을 찾기 위한 IronOCR 검색 경로 보기 로그 활성화:
IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.All;
IronSoftware.Logger.LogFilePath = "OcrMaui.log";
IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.All;
IronSoftware.Logger.LogFilePath = "OcrMaui.log";
IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.All
IronSoftware.Logger.LogFilePath = "OcrMaui.log"

