OfficeIMO.Reader
0.1.41
Prefix Reserved
dotnet add package OfficeIMO.Reader --version 0.1.41
NuGet\Install-Package OfficeIMO.Reader -Version 0.1.41
<PackageReference Include="OfficeIMO.Reader" Version="0.1.41" />
<PackageVersion Include="OfficeIMO.Reader" Version="0.1.41" />
<PackageReference Include="OfficeIMO.Reader" />
paket add OfficeIMO.Reader --version 0.1.41
#r "nuget: OfficeIMO.Reader, 0.1.41"
#:package OfficeIMO.Reader@0.1.41
#addin nuget:?package=OfficeIMO.Reader&version=0.1.41
#tool nuget:?package=OfficeIMO.Reader&version=0.1.41
OfficeIMO.Reader - document extraction facade
OfficeIMO.Reader is a read-only facade for deterministic document extraction. It normalizes supported source files into ReaderChunk objects for search, indexing, chat, RAG, migration, and review workflows.
Install
dotnet add package OfficeIMO.Reader
Quick start
using OfficeIMO.Reader;
foreach (var chunk in DocumentReader.Read(@"C:\Docs\Policy.docx")) {
Console.WriteLine(chunk.Id);
Console.WriteLine(chunk.Location.HeadingPath);
Console.WriteLine(chunk.Markdown ?? chunk.Text);
}
Streams and folders
using OfficeIMO.Reader;
using var stream = File.OpenRead(@"C:\Docs\Policy.docx");
var chunksFromStream = DocumentReader.Read(stream, "Policy.docx").ToList();
var folderChunks = DocumentReader.ReadFolder(
folderPath: @"C:\Docs",
folderOptions: new ReaderFolderOptions {
Recurse = true,
MaxFiles = 500,
MaxTotalBytes = 500L * 1024 * 1024,
SkipReparsePoints = true,
DeterministicOrder = true
},
options: new ReaderOptions {
MaxChars = 8_000
}).ToList();
What it reads
Built-in and modular adapters can extract:
- Word (
.docx,.docm) as Markdown chunks. - Excel (
.xlsx,.xlsm) as table chunks and optional Markdown previews. - PowerPoint (
.pptx,.pptm) as slide-aligned chunks, optionally including notes. - Markdown (
.md,.markdown) as parser-aware heading chunks. - PDF, RTF, Visio, HTML, CSV/TSV, JSON, XML, YAML, EPUB, ZIP, and structured text through modular adapter packages.
Modular adapters
Install and register only the adapters you need:
using OfficeIMO.Reader.Csv;
using OfficeIMO.Reader.Epub;
using OfficeIMO.Reader.Html;
using OfficeIMO.Reader.Json;
using OfficeIMO.Reader.Pdf;
using OfficeIMO.Reader.Rtf;
using OfficeIMO.Reader.Visio;
using OfficeIMO.Reader.Xml;
using OfficeIMO.Reader.Yaml;
using OfficeIMO.Reader.Zip;
DocumentReaderCsvRegistrationExtensions.RegisterCsvHandler();
DocumentReaderEpubRegistrationExtensions.RegisterEpubHandler();
DocumentReaderHtmlRegistrationExtensions.RegisterHtmlHandler();
DocumentReaderJsonRegistrationExtensions.RegisterJsonHandler();
DocumentReaderPdfRegistrationExtensions.RegisterPdfHandler();
DocumentReaderRtfRegistrationExtensions.RegisterRtfHandler();
DocumentReaderVisioRegistrationExtensions.RegisterVisioHandler();
DocumentReaderXmlRegistrationExtensions.RegisterXmlHandler();
DocumentReaderYamlRegistrationExtensions.RegisterYamlHandler();
DocumentReaderZipRegistrationExtensions.RegisterZipHandler();
Host examples
Capability discovery
using OfficeIMO.Reader;
var capabilities = DocumentReader.GetCapabilities();
foreach (var capability in capabilities) {
Console.WriteLine($"{capability.Id}: {string.Join(", ", capability.Extensions)}");
}
string manifestJson = DocumentReader.GetCapabilityManifestJson();
Register a custom handler
using OfficeIMO.Reader;
DocumentReader.RegisterHandler(new ReaderHandlerRegistration {
Id = "custom-audit",
DisplayName = "Custom audit reader",
Kind = ReaderInputKind.Text,
Extensions = new[] { ".auditx" },
ReadPath = (path, options, cancellationToken) => {
string text = File.ReadAllText(path);
return new[] {
new ReaderChunk {
Id = "audit:1",
Kind = ReaderInputKind.Text,
Text = text,
Location = new ReaderLocation { Path = path }
}
};
}
});
Host contracts
ReaderOptionscontrols chunk size, table row limits, footnotes/notes, Excel ranges, Markdown heading chunking, hashes, and input budgets.ReaderFolderOptionscontrols recursion, file limits, byte limits, reparse-point handling, and deterministic folder order.DocumentReader.GetCapabilities()andGetCapabilityManifestJson()expose a stable host-discovery surface.- Custom handlers can be registered with
DocumentReader.RegisterHandler(...).
Boundaries
OfficeIMO.Readerowns the shared extraction contract and built-in facade.- Source-specific parsing belongs in the source package or modular adapter.
- Adapters should use
ReaderInputLimitsso input size and stream behavior stays consistent. - AI or database storage belongs in the consuming application.
Related packages
- OfficeIMO.Reader.Pdf
- OfficeIMO.Reader.Rtf
- OfficeIMO.Reader.Visio
- OfficeIMO.Reader.Html
- OfficeIMO.Reader.Csv
- OfficeIMO.Reader.Json
- OfficeIMO.Reader.Xml
- OfficeIMO.Reader.Yaml
- OfficeIMO.Reader.Epub
- OfficeIMO.Reader.Zip
Targets and license
- Targets:
netstandard2.0,net8.0,net10.0. - License: MIT.
- Repository: EvotecIT/OfficeIMO
| 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.Excel (>= 0.6.46)
- OfficeIMO.Markdown (>= 0.6.33)
- OfficeIMO.Pdf (>= 0.1.41)
- OfficeIMO.PowerPoint (>= 1.0.41)
- OfficeIMO.Word (>= 1.0.67)
- OfficeIMO.Word.Markdown (>= 1.0.42)
- System.Text.Json (>= 10.0.7 && < 11.0.0)
-
.NETStandard 2.0
- OfficeIMO.Excel (>= 0.6.46)
- OfficeIMO.Markdown (>= 0.6.33)
- OfficeIMO.Pdf (>= 0.1.41)
- OfficeIMO.PowerPoint (>= 1.0.41)
- OfficeIMO.Word (>= 1.0.67)
- OfficeIMO.Word.Markdown (>= 1.0.42)
- System.Text.Json (>= 10.0.7 && < 11.0.0)
-
net10.0
- OfficeIMO.Excel (>= 0.6.46)
- OfficeIMO.Markdown (>= 0.6.33)
- OfficeIMO.Pdf (>= 0.1.41)
- OfficeIMO.PowerPoint (>= 1.0.41)
- OfficeIMO.Word (>= 1.0.67)
- OfficeIMO.Word.Markdown (>= 1.0.42)
-
net8.0
- OfficeIMO.Excel (>= 0.6.46)
- OfficeIMO.Markdown (>= 0.6.33)
- OfficeIMO.Pdf (>= 0.1.41)
- OfficeIMO.PowerPoint (>= 1.0.41)
- OfficeIMO.Word (>= 1.0.67)
- OfficeIMO.Word.Markdown (>= 1.0.42)
NuGet packages (11)
Showing the top 5 NuGet packages that depend on OfficeIMO.Reader:
| Package | Downloads |
|---|---|
|
OfficeIMO.Reader.Csv
CSV/TSV adapter extensions for OfficeIMO.Reader. |
|
|
OfficeIMO.Reader.Json
JSON adapter extensions for OfficeIMO.Reader. |
|
|
OfficeIMO.Reader.Xml
XML adapter extensions for OfficeIMO.Reader. |
|
|
OfficeIMO.Reader.Zip
ZIP adapter for OfficeIMO.Reader modular ingestion. |
|
|
OfficeIMO.Reader.Epub
EPUB adapter for OfficeIMO.Reader modular ingestion. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.41 | 154 | 6/16/2026 |
| 0.1.40 | 277 | 6/16/2026 |
| 0.1.39 | 371 | 6/15/2026 |
| 0.1.38 | 505 | 6/13/2026 |
| 0.1.37 | 518 | 6/12/2026 |
| 0.1.36 | 411 | 6/9/2026 |
| 0.1.35 | 413 | 6/5/2026 |
| 0.1.34 | 416 | 5/27/2026 |
| 0.1.33 | 393 | 5/26/2026 |
| 0.1.32 | 403 | 5/26/2026 |
| 0.1.31 | 436 | 5/23/2026 |
| 0.1.30 | 406 | 5/22/2026 |
| 0.1.29 | 401 | 5/21/2026 |
| 0.1.28 | 388 | 5/21/2026 |
| 0.1.27 | 393 | 5/20/2026 |
| 0.1.26 | 376 | 5/19/2026 |
| 0.1.25 | 388 | 5/18/2026 |
| 0.1.24 | 450 | 5/16/2026 |
| 0.1.23 | 402 | 5/14/2026 |
| 0.1.22 | 391 | 5/14/2026 |