OfficeIMO.Reader.Visio
3.6.1
Prefix Reserved
dotnet add package OfficeIMO.Reader.Visio --version 3.6.1
NuGet\Install-Package OfficeIMO.Reader.Visio -Version 3.6.1
<PackageReference Include="OfficeIMO.Reader.Visio" Version="3.6.1" />
<PackageVersion Include="OfficeIMO.Reader.Visio" Version="3.6.1" />
<PackageReference Include="OfficeIMO.Reader.Visio" />
paket add OfficeIMO.Reader.Visio --version 3.6.1
#r "nuget: OfficeIMO.Reader.Visio, 3.6.1"
#:package OfficeIMO.Reader.Visio@3.6.1
#addin nuget:?package=OfficeIMO.Reader.Visio&version=3.6.1
#tool nuget:?package=OfficeIMO.Reader.Visio&version=3.6.1
OfficeIMO.Reader.Visio - Visio reader adapter
OfficeIMO.Reader.Visio provides a Visio adapter for OfficeIMO.Reader.Core using OfficeIMO.Visio inspection snapshots.
Install
dotnet add package OfficeIMO.Reader.Visio
Register
using OfficeIMO.Reader;
using OfficeIMO.Reader.Visio;
OfficeDocumentReader reader = new OfficeDocumentReaderBuilder()
.AddVisioHandler()
.Build();
IReadOnlyList<ReaderChunk> chunks = reader
.Read("diagram.vsdx")
.ToList();
The handler also dispatches .vdx, .vsx, and .vtx through the legacy XML import profile. It also imports .vsd, .vss and .vst through the bounded binary version 11 profile, with import losses included in results. Give streams their real filename extension so the adapter selects the correct family. Import diagnostics appear in document results and chunk warnings. Page-less stencils have no page text chunks; use the Visio master model for their reusable shapes.
Examples
Inspect pages, shapes, and Shape Data
using OfficeIMO.Reader;
using OfficeIMO.Reader.Visio;
OfficeDocumentReader reader = new OfficeDocumentReaderBuilder()
.AddVisioHandler()
.Build();
foreach (var chunk in reader.Enumerate("architecture.vsdx")) {
Console.WriteLine($"Page {chunk.Location.Page}: {chunk.Id}");
Console.WriteLine(chunk.Markdown ?? chunk.Text);
foreach (var table in chunk.Tables ?? Array.Empty<ReaderTable>()) {
Console.WriteLine($"Shape Data table: {table.Rows.Count} row(s)");
}
}
Read Visio files from a folder with other formats
using OfficeIMO.Reader;
using OfficeIMO.Reader.Pdf;
using OfficeIMO.Reader.Visio;
OfficeDocumentReader reader = new OfficeDocumentReaderBuilder()
.AddPdfHandler()
.AddVisioHandler()
.Build();
var chunks = reader.EnumerateFolder("Architecture",
new ReaderFolderOptions {
Extensions = new[] { ".vsdx", ".pdf" },
Recurse = true,
DeterministicOrder = true
},
new ReaderOptions {
MaxChars = 8_000
}).ToList();
Read topology and geometry
OfficeDocumentReader reader = new OfficeDocumentReaderBuilder()
.AddVisioHandler()
.Build();
OfficeDocumentReadResult document = reader.ReadDocument("network.vsdx");
foreach (ReaderVisual topology in document.Visuals) {
Console.WriteLine($"Page {topology.Location.Page}: {topology.Content}");
}
foreach (OfficeDocumentPage page in document.Pages) {
Console.WriteLine($"{page.Name}: {page.Width} x {page.Height} points");
}
The topology visual is deterministic JSON describing page shapes and connector edges. Shared regions and page dimensions are expressed in points. A configured reader uses the same native mapping through reader.ReadDocument("network.vsdx").
An already loaded VisioDocument can use the same projection without being
serialized and reopened:
OfficeDocumentReadResult document = diagram.ToOfficeDocumentReadResult();
What it emits
- Page-aware chunks for
.vsdx,.vstx,.vssx,.vsdm,.vstm, and.vssmfiles. - Shape Data as
ReaderTablerows. - Pages, shapes, connectors, hyperlinks, and optional preview asset metadata in the shared read result envelope.
- Point-based geometry and one topology
ReaderVisualper page for graph-aware consumers. - Page-less stencils load as valid packages; they may produce no page chunks while their masters remain available through
OfficeIMO.Visio.
Boundaries
- Reader adapter configuration belongs here.
- Visio package parsing and inspection belongs in
OfficeIMO.Visio. - Shared extraction contracts belong in
OfficeIMO.Reader.Core. - The handler advertises the same 512 MiB default input limit enforced by
VisioDocument.Load; setReaderOptions.MaxInputBytesexplicitly to choose a different bound.
Targets and license
- Targets:
netstandard2.0,net8.0,net10.0. - License: MIT.
Dependency footprint
- External:
System.IO.Packagingonly throughOfficeIMO.Visio. - OfficeIMO:
OfficeIMO.Reader.CoreandOfficeIMO.Visioown diagram inspection, topology, chunks, tables, and visuals.
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.6.1)
- OfficeIMO.Visio (>= 3.6.1)
-
.NETStandard 2.0
- OfficeIMO.Reader.Core (>= 3.6.1)
- OfficeIMO.Visio (>= 3.6.1)
-
net10.0
- OfficeIMO.Reader.Core (>= 3.6.1)
- OfficeIMO.Visio (>= 3.6.1)
-
net8.0
- OfficeIMO.Reader.Core (>= 3.6.1)
- OfficeIMO.Visio (>= 3.6.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on OfficeIMO.Reader.Visio:
| Package | Downloads |
|---|---|
|
OfficeIMO.Reader.All
Composition-only preset for registering OfficeIMO.Reader's local format adapters. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.6.1 | 132 | 11/10/2026 |
| 3.6.0 | 225 | 11/6/2026 |
| 3.5.3 | 154 | 10/31/2026 |
| 3.5.2 | 143 | 10/24/2026 |
| 3.5.1 | 188 | 10/16/2026 |
| 3.4.5 | 637 | 10/10/2026 |
| 3.4.4 | 292 | 9/27/2026 |
| 3.4.3 | 301 | 9/12/2026 |
| 3.4.2 | 217 | 9/9/2026 |
| 3.4.1 | 229 | 9/7/2026 |
| 3.4.0 | 181 | 9/6/2026 |
| 3.3.0 | 168 | 9/2/2026 |
| 3.2.7 | 158 | 8/29/2026 |
| 3.2.6 | 261 | 8/22/2026 |
| 3.2.5 | 255 | 8/21/2026 |
| 3.2.4 | 244 | 8/19/2026 |
| 3.2.3 | 163 | 8/17/2026 |
| 3.2.2 | 366 | 8/13/2026 |
| 3.2.1 | 298 | 8/11/2026 |
| 3.2.0 | 451 | 8/7/2026 |