OfficeIMO.Reader.Ocr.Process
3.0.0
Prefix Reserved
dotnet add package OfficeIMO.Reader.Ocr.Process --version 3.0.0
NuGet\Install-Package OfficeIMO.Reader.Ocr.Process -Version 3.0.0
<PackageReference Include="OfficeIMO.Reader.Ocr.Process" Version="3.0.0" />
<PackageVersion Include="OfficeIMO.Reader.Ocr.Process" Version="3.0.0" />
<PackageReference Include="OfficeIMO.Reader.Ocr.Process" />
paket add OfficeIMO.Reader.Ocr.Process --version 3.0.0
#r "nuget: OfficeIMO.Reader.Ocr.Process, 3.0.0"
#:package OfficeIMO.Reader.Ocr.Process@3.0.0
#addin nuget:?package=OfficeIMO.Reader.Ocr.Process&version=3.0.0
#tool nuget:?package=OfficeIMO.Reader.Ocr.Process&version=3.0.0
OfficeIMO.Reader.Ocr.Process - external OCR process provider
OfficeIMO.Reader.Ocr.Process connects OfficeIMO.Reader.Core to a caller-configured executable through a versioned JSON file protocol. The executable runs directly—no command shell is inserted by the provider.
Install
dotnet add package OfficeIMO.Reader.Ocr.Process
dotnet add package OfficeIMO.Reader.Word
Configure an engine
using OfficeIMO.Reader;
using OfficeIMO.Reader.Ocr.Process;
using OfficeIMO.Reader.Word;
var engine = new ProcessOfficeOcrEngine(new ProcessOfficeOcrEngineOptions {
FileName = "/opt/my-ocr/recognize",
Arguments = new[] { "--request", "{request}" },
Id = "my-ocr",
Timeout = TimeSpan.FromMinutes(1),
MaxOutputBytes = 8L * 1024L * 1024L
});
OfficeDocumentReader reader = new OfficeDocumentReaderBuilder()
.AddWordHandler()
.Build();
OfficeDocumentReadResult source = reader.ReadDocument("scan.docx");
OfficeDocumentOcrExecutionResult execution = await source.ApplyOcrAsync(engine);
Console.WriteLine(execution.Document.Markdown);
Each call receives an isolated request directory. The provider writes the candidate payload and a camel-case request JSON file with schema id officeimo.reader.ocr.process-request, version 1. The request's outputPath identifies where the executable must write a response envelope with schema id officeimo.reader.ocr.process-response, version 1, and an OfficeOcrEngineResult in its result property. Use ProcessOfficeOcrProtocol.SerializeResult(...) when the external bridge is implemented in .NET.
Available argument placeholders are {request}, {input}, {output}, {language}, {candidateId}, and {assetId}. They are substituted as individual process arguments, not shell text.
Operational boundaries
- Candidate count, input bytes, concurrency, engine duration, recognized text, and span counts remain bounded by
OfficeDocumentOcrExecutionOptions. - Process stdout and stderr, response JSON size, and runtime are bounded separately by
ProcessOfficeOcrEngineOptions. - The runner contains descendants in a kill-on-close Windows Job Object, a
setsidprocess group on Linux/Unix, or a POSIX session launched through the system Perl on macOS. It fails closed when the host cannot provide one of those containment boundaries. - Executable paths, arguments, environment variables, and provider options are trusted host configuration. Do not build them directly from document content.
- Payload bytes are stored in owner-only per-request directories/files on Unix and are deleted by default. Set
KeepTemporaryFilesonly for controlled diagnostics.
Targets and license
- Targets:
netstandard2.0,net8.0,net10.0(net472is also included on Windows builds). - License: MIT.
Dependency footprint
- External: A caller-configured executable plus
System.Text.Jsonfor the versioned protocol. - OfficeIMO:
OfficeIMO.Reader.Coreowns candidate selection, bounded execution, containment, results, and diagnostics.
See the complete OfficeIMO package map for related formats and conversion paths.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.2
- OfficeIMO.Reader.Core (>= 3.0.0)
- System.Text.Json (>= 10.0.7 && < 11.0.0)
-
.NETStandard 2.0
- OfficeIMO.Reader.Core (>= 3.0.0)
- System.Text.Json (>= 10.0.7 && < 11.0.0)
-
net10.0
- OfficeIMO.Reader.Core (>= 3.0.0)
-
net8.0
- OfficeIMO.Reader.Core (>= 3.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on OfficeIMO.Reader.Ocr.Process:
| Package | Downloads |
|---|---|
|
OfficeIMO.Reader.Ocr.Tesseract
Optional Tesseract CLI OCR engine for OfficeIMO.Reader. |
GitHub repositories
This package is not used by any popular GitHub repositories.