OfficeIMO: COM-Free .NET Libraries for Office, PDF, and Email Documents
MIT-licensed, COM-free .NET libraries for creating, reading, editing, converting, rendering, and extracting Office, PDF, email, OneNote, and text formats.
At a glance
- What is it?
- OfficeIMO is a family of MIT-licensed .NET libraries for creating, reading, editing, converting, and exporting Office documents, PDF files, email formats, and a wide range of related types, all without requiring Microsoft Office, Excel, or any COM automation to be installed on the host. Each document engine in the family is owned and maintained first-party rather than delegating to third-party parsing libraries.
- Who is it for?
- OfficeIMO fits .NET services, automation pipelines, and containers where installing Office automation is not an option and where a single coordinated library family is preferable to assembling separate parsing packages per format. Teams that need only Word and Excel in a desktop application with Office already installed have less reason to add a dependency here.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly C#, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 27, 2026, and from our analysis. They are not legal advice.
Editorial analysis
COM-Free Document Processing for .NET Services and Containers
COM automation for Office documents requires a full Office installation and a Windows desktop session, which rules it out for server-side processing, Linux containers, Docker deployments, and CI pipelines. OfficeIMO removes that constraint: it runs in any .NET environment without Microsoft Office, Excel, PowerPoint, Visio, or LibreOffice present. The README describes it as running in services, desktop applications, build agents, containers, and automation hosts. That scope makes it relevant to .NET backend teams processing user-uploaded documents, to PDF generation pipelines, and to data extraction workflows that handle email archives or legacy binary Office files alongside modern OpenXML formats.
The project also covers Apple iWork source formats (.pages, .numbers, .key) for read and inspect operations and offline OneNote files (.one, .onetoc2, .onepkg), which most .NET document libraries ignore entirely. For teams operating in mixed-format environments where users submit files from a variety of applications, this breadth reduces the number of separate parsing dependencies in a project.
A Family of First-Party Document Engines
OfficeIMO describes itself as owning its document engine implementations rather than acting as a facade over unrelated third-party libraries. The README states: "This is not one facade over a collection of unrelated document libraries." The significance of that claim is visible in the dependency table the README provides.
For formats like Markdown, RTF, OpenDocument, AsciiDoc, LaTeX, OPML, DocBook, CSV, EPUB, ZIP, and the Apple iWork source layers, the README lists no external runtime dependency on a third-party document engine. OfficeIMO owns the parsing, object models, writing, rendering primitives, and diagnostics for those formats. For Word, Excel, and PowerPoint, it uses the Open XML SDK for package mechanics but owns the fluent and editable object models, lifecycle, validation, conversions, and the first-party support for legacy .doc, .xls, and .ppt formats that the SDK itself does not cover. PDF handling also carries no third-party PDF or cryptographic dependency: OfficeIMO owns PDF parsing, writing, rendering, password security, and preservation.
Optional capabilities are isolated to opt-in packages. Security operations such as CMS, S/MIME, and X.509 require the Bouncy Castle provider to be explicitly supplied; nothing in the core packages brings Bouncy Castle in automatically. Chart support through ChartForgeX and AI-based document operations through OfficeIMO.AI are similarly optional. This architecture means a project that processes only CSV and plain text incurs none of the dependencies a PDF or email project would need.
Installing OfficeIMO and Keeping Packages Coordinated
OfficeIMO is distributed through GitHub Releases and the project homepage at officeimo.com. The README specifies one important constraint for existing applications: "Applications should keep OfficeIMO packages on the same coordinated version." The library is organized into format-specific packages, and because converters compose the document models from different packages, mixing versions can break the fidelity diagnostics that conversion APIs return.
For new projects, the starting point is identifying which document families you need, then selecting the corresponding packages. The homepage and the migration guide at MIGRATION.md document the package names, the API surface per format, and the behavior changes across releases. The release history and downloadable artifacts are published through GitHub Releases; the most recent OfficeIMO release at the time of writing was published on 2026-09-27.
The README notes a separate Studio component with its own release cadence (Studio-v0.1.9767, published 2026-09-28) alongside the main library releases. PowerShell users working with Office documents are directed to the PSWriteOffice project, which wraps OfficeIMO for script-based workflows.
What the Dependency Table Reveals About Package Selection
The dependency table in the README is the most direct way to understand what a given format will cost in terms of runtime dependencies. Formats such as OneNote, PDF, RTF, and OpenDocument bring in no third-party document engines. Formats that use HTML rendering pull in AngleSharp and AngleSharp.Css. The optional Google Workspace packages use only System.Text.Json and platform HTTP libraries, with no Google client SDK. The Visio support uses System.IO.Packaging from the BCL.
For teams concerned with supply-chain audits or embedded-system deploy sizes, this table is the right place to start rather than inspecting transitive dependencies after the fact. Adding OfficeIMO.PDF to a project that previously had no PDF handling adds a meaningful capability at no third-party document engine cost. Adding the optional security provider adds a Bouncy Castle dependency, which teams must evaluate against their cryptographic library policies.
Converter packages for inter-format conversion depend only on the OfficeIMO format packages they connect, not on additional third-party engines. This means a Word-to-PDF converter built on OfficeIMO does not silently add a PDF library beyond what the OfficeIMO.Pdf package already owns.
Legacy Binary Format Support
One concrete difference between OfficeIMO and the Open XML SDK is first-party support for legacy binary Office formats. Word 97 through 2003 .doc files, Excel BIFF8 .xls, and PowerPoint 97 through 2003 .ppt, .pot, and .pps files are handled by OfficeIMO's own implementation. The Open XML SDK covers only the OpenXML generation of formats (.docx, .xlsx, .pptx); it does not read legacy binary files. Teams that receive .doc uploads from older enterprise workflows or need to convert archived .xls spreadsheets to modern formats benefit from OfficeIMO's coverage here without adding a separate legacy-format parsing library.
For Apple iWork, the README describes bounded package handling, Snappy/IWA support, protobuf-envelope parsing, record preservation, and projection layers for Pages, Numbers, and Keynote. The capability is read and inspect plus editable or visual-fallback projection; authoring new iWork files from scratch is not supported. This is a read-first integration, useful for extracting content from iWork files in mixed document stores.
Limitations and Cases Where OfficeIMO Is the Wrong Choice
OfficeIMO owns its PDF implementation, which avoids a third-party dependency but also means the PDF capability depends on the depth of OfficeIMO's first-party implementation rather than on a mature specialized PDF library. Teams with demanding PDF requirements (interactive forms with JavaScript, complex PDF/A compliance workflows, or very large rendering tasks) should test their specific scenarios against the OfficeIMO PDF implementation before committing.
Apple iWork support is read-only and inspect-only for the core authoring formats. Teams that need to generate .pages or .numbers files for iWork users cannot do that with OfficeIMO today. The README is explicit: "no iWork authoring."
The optional OCR support requires a caller-supplied Tesseract CLI or compatible executable. OfficeIMO provides request and result contracts around it, but it does not bundle OCR capabilities natively. In containerized environments where adding a Tesseract binary to the image is not straightforward, this means OCR is an explicit operational decision rather than a package install.
OfficeIMO vs the Open XML SDK Directly
The Open XML SDK from Microsoft is the foundation for Word, Excel, and PowerPoint document mechanics in .NET. It provides low-level access to the XML parts inside a .docx or .xlsx file and requires the caller to navigate the OpenXML schema directly. OfficeIMO builds a fluent and editable object model on top of the SDK, adding lifecycle management, validation, and managed image export while also contributing first-party support for legacy binary formats (.doc, .xls, .ppt) that the SDK does not touch.
Choosing the Open XML SDK directly makes sense when you need full control over XML-level document structure and are willing to maintain schema-specific code. Choosing OfficeIMO makes sense when you want a higher-level API, need legacy format support, or need to handle PDF, email, or other formats alongside Office documents without assembling separate libraries. The two are not mutually exclusive; OfficeIMO's Word, Excel, and PowerPoint packages use the SDK for package mechanics under the hood, so a project that already uses the SDK and adds OfficeIMO does not introduce a competing dependency.
Maintenance Status and License
The last push to the OfficeIMO repository was on 2026-09-27 and the most recent library release, OfficeIMO 2026.09.27-15.01.27, was published on 2026-09-27. The Studio component reached v0.1.9767 on 2026-09-28. The project is under the MIT license, which imposes no restrictions on commercial use and requires attribution.
The project is developed by Przemyslaw Klys and is supported through GitHub Sponsors and PayPal. The README acknowledges its sponsor community by name. The MIGRATION.md file covers breaking changes across releases, which is important for teams that track the library closely: OfficeIMO releases multiple versions per week in active periods, and API behavior can change between coordinated version bumps.
Editorial conclusion
OfficeIMO fits .NET services, automation pipelines, and containers where installing Office automation is not an option and where a single coordinated library family is preferable to assembling separate parsing packages per format. Teams that need only Word and Excel in a desktop application with Office already installed have less reason to add a dependency here. Before adopting it, check the MIGRATION.md for the formats your project needs, verify the packages for those formats are at a stable release, and confirm that the optional Bouncy Castle security provider meets any compliance requirements for your encrypted document workflows.
Frequently asked questions
What does DOCX stand for?
DOCX is the file extension for the Office Open XML word processing format introduced by Microsoft. The X indicates the XML-based structure that replaced the older binary .doc format. OfficeIMO reads and writes both .docx (modern) and legacy .doc (Word 97 through 2003) files using its own first-party implementations.
Does OfficeIMO require Microsoft Office to be installed?
No. OfficeIMO is explicitly designed to run without Microsoft Office, Excel, PowerPoint, Visio, or LibreOffice present. It uses no COM automation and runs in containers, Linux servers, build agents, and any .NET environment.
Can OfficeIMO read legacy .doc and .xls files?
Yes. OfficeIMO includes first-party support for Word 97 through 2003 .doc files, Excel BIFF8 .xls files, and PowerPoint 97 through 2003 .ppt, .pot, and .pps files. These legacy binary formats are not covered by the Open XML SDK, which OfficeIMO also uses for modern format mechanics.
Do all OfficeIMO packages need to be on the same version?
Yes, according to the README. Converters compose document models from multiple packages, and mixing package versions can break fidelity diagnostics. The recommended approach is to keep all OfficeIMO packages at the same coordinated version when upgrading.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/evotecit-officeimo)