Skip to main content

Search OfficeIMO

Enter a topic, API type, or PowerShell command.

Documentation Search all OfficeIMO/
Class

VisioDocument

OfficeIMO.Visio

Namespace
OfficeIMO.Visio
Assembly
OfficeIMO.Visio
Source revision
0eef6a5756b9 with working tree changes
Implements
IDisposable

Represents a Visio document containing pages.

Inheritance

  • object
  • VisioDocument

Usage

Explore 112 API references to this type

This type appears in these public API surfaces even when no hand-authored example is attached directly to the page.

Returned or exposed by 45

Accepted by parameters 67

Constructors

public VisioDocument() #

Methods

AddBackgroundPage 2 overloads
public VisioPage AddBackgroundPage(string name, Action<VisioPage> configure) #

Adds a background page and configures the created native page.

Parameters

name string required
configure System.Action<OfficeIMO.Visio.VisioPage> required

Returns

VisioPage
public VisioPage AddBackgroundPage(string name, OfficeLength? width = null, OfficeLength? height = null, VisioMeasurementUnit scaleUnit = Inches, int? id = null, Action<VisioPage>? configure = null) #

Adds a page with physical dimensions and explicit native drawing-scale units.

Parameters

name string required
width OfficeIMO.OfficeLength? = null optional
height OfficeIMO.OfficeLength? = null optional
scaleUnit OfficeIMO.Visio.VisioMeasurementUnit = Inches optional
id int? = null optional
configure System.Action<OfficeIMO.Visio.VisioPage>? = null optional

Returns

VisioPage
AddPage 2 overloads
public VisioPage AddPage(string name, Action<VisioPage> configure) #

Adds a default-sized page and configures the created native page.

Parameters

name string required
configure System.Action<OfficeIMO.Visio.VisioPage> required

Returns

VisioPage
public VisioPage AddPage(string name, OfficeLength? width = null, OfficeLength? height = null, VisioMeasurementUnit scaleUnit = Inches, int? id = null, Action<VisioPage>? configure = null) #

Adds a page with physical dimensions and explicit native drawing-scale units.

Parameters

name string required
width OfficeIMO.OfficeLength? = null optional
height OfficeIMO.OfficeLength? = null optional
scaleUnit OfficeIMO.Visio.VisioMeasurementUnit = Inches optional
id int? = null optional
configure System.Action<OfficeIMO.Visio.VisioPage>? = null optional

Returns

VisioPage
public VisioDocument ConfigureProperties(Action<VisioDocumentProperties> configure) #

Configures the document's native metadata.

Parameters

configure System.Action<OfficeIMO.Visio.VisioDocumentProperties> required
Create 6 overloads
public static VisioDocument Create() #

Creates a detached document that must be saved explicitly to a path or stream.

public static VisioDocument Create(VisioPackageType packageType) #

Creates a detached document for the specified Visio package family.

Parameters

packageType OfficeIMO.Visio.VisioPackageType required
public static VisioDocument Create(string path) #

Creates a new VisioDocument with the given save path.

Parameters

path string required
Path where the document will be saved.
public static VisioDocument Create(string path, VisioPackageType packageType) #

Creates a new document with an explicit package family and save path.

Parameters

path string required
packageType OfficeIMO.Visio.VisioPackageType required
public static VisioDocument Create(Stream stream) #

Creates a new VisioDocument that will be saved to the provided stream.

Parameters

stream System.IO.Stream required
Destination stream for the VSDX package.
public static VisioDocument Create(Stream stream, VisioPackageType packageType) #

Creates a stream-backed document with an explicit package family.

Parameters

stream System.IO.Stream required
packageType OfficeIMO.Visio.VisioPackageType required
public void Dispose() #

Completes the document lifecycle without saving or closing caller-owned streams.

public VisioMaster GetMaster(string nameU) #

Gets a registered master by NameU.

Parameters

nameU string required
GetOrAddPage 2 overloads
public VisioPage GetOrAddPage(string name, Action<VisioPage> configure, StringComparison comparison = OrdinalIgnoreCase) #

Gets or adds a named page and configures its native model.

Parameters

name string required
configure System.Action<OfficeIMO.Visio.VisioPage> required
comparison System.StringComparison = OrdinalIgnoreCase optional

Returns

VisioPage
public VisioPage GetOrAddPage(string name, OfficeLength? width = null, OfficeLength? height = null, VisioMeasurementUnit scaleUnit = Inches, int? id = null, StringComparison comparison = OrdinalIgnoreCase) #

Gets an existing named page or creates one with the supplied physical dimensions.

Parameters

name string required
width OfficeIMO.OfficeLength? = null optional
height OfficeIMO.OfficeLength? = null optional
scaleUnit OfficeIMO.Visio.VisioMeasurementUnit = Inches optional
id int? = null optional
comparison System.StringComparison = OrdinalIgnoreCase optional

Returns

VisioPage
GetPage 5 overloads
public VisioPage GetPage(int index, Action<VisioPage> configure) #

Configures an existing page selected by index.

Parameters

index int required
configure System.Action<OfficeIMO.Visio.VisioPage> required

Returns

VisioPage
public VisioPage GetPage(string name, Action<VisioPage> configure, StringComparison comparison = OrdinalIgnoreCase) #

Configures an existing page selected by name.

Parameters

name string required
configure System.Action<OfficeIMO.Visio.VisioPage> required
comparison System.StringComparison = OrdinalIgnoreCase optional

Returns

VisioPage
public VisioPage GetPage(VisioPage page, Action<VisioPage> configure) #

Configures a page belonging to this document.

Parameters

page OfficeIMO.Visio.VisioPage required
configure System.Action<OfficeIMO.Visio.VisioPage> required

Returns

VisioPage
public VisioPage GetPage(int pageIndex) #

Gets an existing page by zero-based index.

Parameters

pageIndex int required

Returns

VisioPage
public VisioPage GetPage(string name, StringComparison comparison = OrdinalIgnoreCase) #

Gets an existing page by name without adding a page.

Parameters

name string required
comparison System.StringComparison = OrdinalIgnoreCase optional

Returns

VisioPage
public void ImportMasters(string vsdxPath, IEnumerable<string>? names = null) #

Imports master names from a VSDX file and registers only the library-supported generated equivalents so shapes can reference them by NameU. If names is null or empty, all discoverable supported masters are registered.

Parameters

vsdxPath string required
names System.Collections.Generic.IEnumerable<string>? = null optional
public IReadOnlyList<VisioMaster> ImportMastersAndGet(string vsdxPath, IEnumerable<string>? names = null) #

Imports master names from a VSDX file and returns the registered generated masters that are natively implemented by the library.

Parameters

vsdxPath string required
names System.Collections.Generic.IEnumerable<string>? = null optional

Returns

IReadOnlyList<VisioMaster>
ImportStencilMasters 2 overloads
public void ImportStencilMasters(string packagePath, IEnumerable<string>? names = null) #

Imports actual master definitions from a user-supplied Visio stencil, drawing, or template package. Unlike VisioDocument.LearnMastersFromVsdx, this preserves the package master XML so shapes can use real external stencil artwork. Use this only for stencil packs the caller is allowed to embed.

Parameters

packagePath string required
Path to a `.vssx`, `.vsdx`, or `.vstx` package.
names System.Collections.Generic.IEnumerable<string>? = null optional
Optional filters matching master NameU, display name, relationship id, numeric id, or normalized slug.
public void ImportStencilMasters(IEnumerable<VisioStencilShape> shapes) #

Imports the package-backed masters required by the provided stencil shapes. Shapes loaded from multiple `.vssx`, `.vstx`, or `.vsdx` packages are grouped by source package.

Parameters

shapes System.Collections.Generic.IEnumerable<OfficeIMO.Visio.Stencils.VisioStencilShape> required
Stencil shapes with VisioStencilShape.SourcePackagePath metadata.
ImportStencilMastersAndGet 2 overloads
public IReadOnlyList<VisioMaster> ImportStencilMastersAndGet(string packagePath, IEnumerable<string>? names = null) #

Imports actual master definitions from a user-supplied Visio stencil, drawing, or template package and returns the registered masters.

Parameters

packagePath string required
Path to a `.vssx`, `.vsdx`, or `.vstx` package.
names System.Collections.Generic.IEnumerable<string>? = null optional
Optional filters matching master NameU, display name, relationship id, numeric id, or normalized slug.

Returns

IReadOnlyList<VisioMaster>
public IReadOnlyList<VisioMaster> ImportStencilMastersAndGet(IEnumerable<VisioStencilShape> shapes) #

Imports the package-backed masters required by the provided stencil shapes and returns the imported masters.

Parameters

shapes System.Collections.Generic.IEnumerable<OfficeIMO.Visio.Stencils.VisioStencilShape> required
Stencil shapes with VisioStencilShape.SourcePackagePath metadata.

Returns

IReadOnlyList<VisioMaster>
public OfficeHiddenDataReport InspectHiddenData() #

Finds metadata, personal information and hidden data that saving this drawing would keep, without changing it. Saving writes a new package from the drawing model, so package properties other than title and author, thumbnails and package-level Content Credentials of a loaded file are not carried into the saved file and are not reported.

Returns

OfficeHiddenDataReport
InspectSignatures 2 overloads
public static OfficePackageSignatureInfo InspectSignatures(string filePath, OfficePackageSignatureInspectionOptions? options = null) #

Inspects a saved VSDX package through the shared dependency-light OPC signature engine.

Parameters

filePath string required
options OfficeIMO.Security.OfficePackageSignatureInspectionOptions? = null optional

Returns

OfficePackageSignatureInfo
public VisioSignatureInfo InspectSignatures() #

Inspects the signature carrier discovered when this document was loaded. This is structural inspection; it does not validate cryptographic trust.

public static bool IsBuiltinMasterSupported(string? nameU) #

Returns whether the library can generate a built-in master with the provided universal name.

Parameters

nameU string? required

Returns

bool
public IReadOnlyList<VisioMaster> LearnMastersFromVsdx(string vsdxPath, IEnumerable<string>? names = null) #

Learns master names from a VSDX file and registers only the library-supported generated equivalents so shapes can reference them by NameU. This does not ingest, clone, or depend on the source VSDX as a runtime template.

Parameters

vsdxPath string required
Path to a Visio package that contains master metadata.
names System.Collections.Generic.IEnumerable<string>? = null optional
Optional filters matching master NameU, display name, relationship id, numeric id, or normalized slug.

Returns

IReadOnlyList<VisioMaster>
public static IReadOnlyList<MasterInfo> ListMastersIn(string vsdxPath) #

Lists masters available in a given VSDX file (helper that proxies VisioAssets.ListMasters).

Parameters

vsdxPath string required

Returns

IReadOnlyList<MasterInfo>
Load 4 overloads
public static VisioDocument Load(string filePath) #

Loads an existing .vsdx file into a VisioDocument.

Parameters

filePath string required
public static VisioDocument Load(string filePath, VisioLoadOptions? options) #

Loads an existing .vsdx file with explicit input limits.

Parameters

filePath string required
options OfficeIMO.Visio.VisioLoadOptions? required
public static VisioDocument Load(Stream stream) #

Loads an existing .vsdx document from a stream.

Parameters

stream System.IO.Stream required
public static VisioDocument Load(Stream stream, VisioLoadOptions? options) #

Loads an existing .vsdx document from a stream with explicit input limits.

Parameters

stream System.IO.Stream required
options OfficeIMO.Visio.VisioLoadOptions? required
LoadAsync 2 overloads
public static async Task<VisioDocument> LoadAsync(string filePath, VisioLoadOptions? options = null, CancellationToken cancellationToken = default) #

Asynchronously loads an existing .vsdx file with optional input limits.

Parameters

filePath string required
options OfficeIMO.Visio.VisioLoadOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

Task<VisioDocument>
public static async Task<VisioDocument> LoadAsync(Stream stream, VisioLoadOptions? options = null, CancellationToken cancellationToken = default) #

Asynchronously loads an existing .vsdx document from a caller-owned stream with optional input limits.

Parameters

stream System.IO.Stream required
options OfficeIMO.Visio.VisioLoadOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

Task<VisioDocument>
LoadLegacyBinary 2 overloads
public static OfficeConversionResult<VisioDocument, OfficeLegacyImportReport> LoadLegacyBinary(string path, VisioLegacyBinaryImportOptions? options = null, CancellationToken cancellationToken = default) #

Imports a bounded Visio 2003–2010 VSD drawing, VSS stencil or VST template with a loss report.

Parameters

path string required
options OfficeIMO.Visio.VisioLegacyBinaryImportOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

OfficeConversionResult<VisioDocument, OfficeLegacyImportReport>
public static OfficeConversionResult<VisioDocument, OfficeLegacyImportReport> LoadLegacyBinary(Stream stream, VisioPackageType packageType = Drawing, VisioLegacyBinaryImportOptions? options = null, CancellationToken cancellationToken = default) #

Imports the binary profile from a caller-owned stream, returning the existing editable Visio model.

Parameters

stream System.IO.Stream required
packageType OfficeIMO.Visio.VisioPackageType = Drawing optional
options OfficeIMO.Visio.VisioLegacyBinaryImportOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

OfficeConversionResult<VisioDocument, OfficeLegacyImportReport>
LoadLegacyXml 2 overloads
public static OfficeConversionResult<VisioDocument, VisioXmlConversionReport> LoadLegacyXml(string path, VisioLoadOptions? options = null) #

Imports a Visio 2002/2003 VDX drawing, VSX stencil, or VTX template into the editable model with a fidelity report.

Parameters

path string required
options OfficeIMO.Visio.VisioLoadOptions? = null optional

Returns

OfficeConversionResult<VisioDocument, VisioXmlConversionReport>
public static OfficeConversionResult<VisioDocument, VisioXmlConversionReport> LoadLegacyXml(Stream stream, VisioPackageType packageType = Drawing, VisioLoadOptions? options = null, CancellationToken cancellationToken = default) #

Imports legacy XML from a caller-owned stream. Specify the family because legacy XML has no reliable drawing/template discriminator.

Parameters

stream System.IO.Stream required
packageType OfficeIMO.Visio.VisioPackageType = Drawing optional
options OfficeIMO.Visio.VisioLoadOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

OfficeConversionResult<VisioDocument, VisioXmlConversionReport>
public void OpenInApplication(string? filePath = null) #

Opens the associated document in the operating system's registered application.

Parameters

filePath string? = null optional
RegisterMaster 2 overloads
public VisioMaster RegisterMaster(VisioMaster master) #

Registers a master on the document so it can be reused by name.

Parameters

master OfficeIMO.Visio.VisioMaster required
public VisioMaster RegisterMaster(string nameU, VisioShape shape, string? id = null) #

Registers a master blueprint under a NameU and returns the registered master.

Parameters

nameU string required
shape OfficeIMO.Visio.VisioShape required
id string? = null optional
public OfficeHiddenDataReport RemoveHiddenData(OfficeHiddenDataOptions? options = null) #

Removes the selected categories of metadata and hidden data, then reports what was found and what happened to each item. Save the drawing to keep the result.

Parameters

options OfficeIMO.OfficeHiddenDataOptions? = null optional
Categories to remove; defaults to OfficeHiddenDataKind.Default, which keeps hidden content and provenance.

Returns

OfficeHiddenDataReport
RemoveProvenance 2 overloads
public static OfficeProvenanceRemovalResult RemoveProvenance(string inputPath, string outputPath, OfficeProvenanceRemovalOptions? options = null) #

Removes selected provenance and atomically writes a VSDX package.

Parameters

inputPath string required
outputPath string required
options OfficeIMO.Provenance.OfficeProvenanceRemovalOptions? = null optional

Returns

OfficeProvenanceRemovalResult
public static OfficeProvenanceRemovalResult RemoveProvenance(byte[] packageBytes, string fileName = "drawing.vsdx", OfficeProvenanceRemovalOptions? options = null) #

Removes selected provenance from encoded VSDX package bytes.

Parameters

packageBytes byte[] required
fileName string = "drawing.vsdx" optional
options OfficeIMO.Provenance.OfficeProvenanceRemovalOptions? = null optional

Returns

OfficeProvenanceRemovalResult
public void RequestRecalcOnOpen() #

Requests Visio to relayout and reroute connectors when the document is opened.

Save 4 overloads
public void Save() #

Saves the document to the path specified when created.

public void Save(string filePath) #

Saves the document to a specified file path.

Parameters

filePath string required
public void Save(string filePath, VisioPackageType packageType) #

Saves to a specified path using an explicit Visio package family.

Parameters

filePath string required
packageType OfficeIMO.Visio.VisioPackageType required
public void Save(Stream stream) #

Saves the document once to a specified stream without changing the associated destination.

Parameters

stream System.IO.Stream required
SaveAsync 3 overloads
public Task SaveAsync(CancellationToken cancellationToken = default) #

Asynchronously saves to the associated path or stream.

Parameters

cancellationToken System.Threading.CancellationToken = default optional

Returns

Task
public async Task SaveAsync(string filePath, CancellationToken cancellationToken = default) #

Asynchronously saves to a file and associates it with subsequent saves.

Parameters

filePath string required
cancellationToken System.Threading.CancellationToken = default optional

Returns

Task
public async Task SaveAsync(Stream stream, CancellationToken cancellationToken = default) #

Asynchronously saves once to a caller-owned writable stream without changing the associated destination.

Parameters

stream System.IO.Stream required
cancellationToken System.Threading.CancellationToken = default optional

Returns

Task
public void SaveCopy(string filePath) #

Saves an independent copy without changing the document's associated destination.

Parameters

filePath string required
public Task SaveCopyAsync(string filePath, CancellationToken cancellationToken = default) #

Asynchronously saves an independent copy without changing the document's associated destination.

Parameters

filePath string required
cancellationToken System.Threading.CancellationToken = default optional

Returns

Task
SaveLegacyXml 2 overloads
public VisioXmlConversionReport SaveLegacyXml(string path, bool allowOmissions = false) #

Writes a legacy XML copy atomically. Omitted content requires explicit allowOmissions; inspect the returned report for approximations.

Parameters

path string required
allowOmissions bool = false optional
public VisioXmlConversionReport SaveLegacyXml(Stream stream, bool allowOmissions = false) #

Writes legacy XML once to a caller-owned stream without changing the associated destination.

Parameters

stream System.IO.Stream required
allowOmissions bool = false optional
public static OfficePackageSigningResult SignPackage(string filePath, IOfficeSecurityProvider securityProvider, X509Certificate2 signingCertificate, OfficePackageSigningOptions? options = null) #

Creates and validates an OPC signature in a saved VSDX package.

Parameters

filePath string required
securityProvider OfficeIMO.Security.IOfficeSecurityProvider required
signingCertificate System.Security.Cryptography.X509Certificates.X509Certificate2 required
options OfficeIMO.Security.OfficePackageSigningOptions? = null optional

Returns

OfficePackageSigningResult
public byte[] ToBytes() #

Encodes the document using its current Visio package family.

Returns

byte[]
public OfficeConversionResult<byte[], VisioXmlConversionReport> ToLegacyXmlResult() #

Encodes the current drawing, stencil or template as Visio 2003 XML with operation-level loss diagnostics.

Returns

OfficeConversionResult<byte[], VisioXmlConversionReport>
public MemoryStream ToStream() #

Encodes the document in a new writable memory stream positioned at the beginning.

Returns

MemoryStream
public bool TryGetMaster(string nameU, out VisioMaster? master) #

Attempts to find a registered master by NameU.

Parameters

nameU string required
master OfficeIMO.Visio.VisioMaster? required

Returns

bool
public static OfficePackageSigningResult TrySignPackage(string filePath, IOfficeSecurityProvider securityProvider, X509Certificate2 signingCertificate, OfficePackageSigningOptions? options = null) #

Attempts OPC signature creation without throwing for an ordinary signing failure.

Parameters

filePath string required
securityProvider OfficeIMO.Security.IOfficeSecurityProvider required
signingCertificate System.Security.Cryptography.X509Certificates.X509Certificate2 required
options OfficeIMO.Security.OfficePackageSigningOptions? = null optional

Returns

OfficePackageSigningResult
public IReadOnlyList<string> Validate() #

Validates the in-memory document model and returns authoring-time issues.

Returns

IReadOnlyList<string>
public static OfficePackageSignatureValidationReport ValidateSignatures(string filePath, IOfficeSecurityProvider securityProvider, OfficePackageSignatureValidationOptions? options = null) #

Validates a saved VSDX package through an explicitly supplied security provider.

Parameters

filePath string required
securityProvider OfficeIMO.Security.IOfficeSecurityProvider required
options OfficeIMO.Security.OfficePackageSignatureValidationOptions? = null optional

Returns

OfficePackageSignatureValidationReport

Properties

public string? FilePath { get; } #

Gets the file path associated with the document, if any.

public IReadOnlyList<VisioPage> Pages { get; } #

Gets the collection of pages in the document.

public VisioPackageType PackageType { get; } #

Gets the Open XML Visio package family loaded or selected for output.

public bool IsMacroEnabled { get; } #

Gets whether the package family can retain a VBA project.

public bool HasVbaProject { get; } #

Gets whether a preserved opaque VBA project is present.

public bool IsTemplate { get; } #

Gets whether this document is a template package.

public bool IsStencil { get; } #

Gets whether this document is a stencil package.

public IReadOnlyCollection<VisioMaster> Masters { get; } #

Gets the masters currently registered on the document.

public VisioPackageTheme? PackageTheme { get; set; } #

Gets or sets package-level theme metadata preserved in the document.

public VisioDocumentProperties Properties { get; } #

Standard package properties stored in docProps/core.xml.

public bool UseMastersByDefault { get; set; } #

When true, shapes with a known VisioShape.NameU (e.g. "Rectangle") are automatically backed by a document master if none is assigned explicitly. Defaults to false to preserve current library behavior. Set to true to align with native Visio authoring semantics and asset templates.

public bool WriteMasterDeltasOnly { get; set; } #

When writing page shapes that reference a master, emit only delta cells required for the page instance (e.g., PinX/PinY and minimal style hints) instead of a full XForm block. This better matches Visio-authored files and the provided assets. Defaults to true.

public static IReadOnlyCollection<string> SupportedBuiltinMasters { get; } #

Returns the built-in master names that this library can generate natively.

public VisioSignatureMutationPolicy SignatureMutationPolicy { get; set; } #

Gets or sets the policy applied before a loaded signed VSDX package is rebuilt. The safe default blocks the save.

Extension Methods

public static VisioDocument AddStencilGalleryDocument(VisioDocument document, VisioStencilCatalog catalog, VisioStencilGalleryDocumentOptions? options = null) #

Adds stencil gallery review pages to an existing document.

Parameters

document OfficeIMO.Visio.VisioDocument required
catalog OfficeIMO.Visio.Stencils.VisioStencilCatalog required
options OfficeIMO.Visio.Stencils.VisioStencilGalleryDocumentOptions? = null optional
public static IReadOnlyList<VisioDiagramQualityIssue> AnalyzeVisualQuality(VisioDocument document, VisioDiagramQualityOptions? options = null) #

Analyzes every page in a document for common visual quality issues.

Parameters

document OfficeIMO.Visio.VisioDocument required
Document to analyze.
options OfficeIMO.Visio.VisioDiagramQualityOptions? = null optional
Analysis options.

Returns

IReadOnlyList<VisioDiagramQualityIssue>
ApplyStencilMigration 2 overloads
public static VisioStencilMigrationResult ApplyStencilMigration(VisioDocument document, VisioStencilMigrationMap map) #

Applies a stencil migration map to every foreground page in the document.

Parameters

document OfficeIMO.Visio.VisioDocument required
map OfficeIMO.Visio.VisioStencilMigrationMap required
public static VisioStencilMigrationResult ApplyStencilMigration(VisioDocument document, VisioStencilMigrationPlan plan, VisioStencilMigrationMap map) #

Applies a previously reviewed stencil migration plan to a document. The current document must still match the planned pages, shapes, match rules, and replacement stencils.

Parameters

document OfficeIMO.Visio.VisioDocument required
Document to update.
plan OfficeIMO.Visio.VisioStencilMigrationPlan required
Reviewed migration plan.
map OfficeIMO.Visio.VisioStencilMigrationMap required
Migration map used to create the plan.
public static VisioDocument ArchitectureDiagram(VisioDocument document, string pageName, Action<VisioArchitectureDiagramBuilder> configure) #

Adds a semantic architecture diagram page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument required
pageName string required
configure System.Action<OfficeIMO.Visio.Diagrams.VisioArchitectureDiagramBuilder> required
public static VisioDocument BlockDiagram(VisioDocument document, string pageName, Action<VisioBlockDiagramBuilder> configure) #

Adds a semantic block diagram page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument required
pageName string required
configure System.Action<OfficeIMO.Visio.Diagrams.VisioBlockDiagramBuilder> required
public static VisioStencilProfile CreateStencilProfile(VisioDocument document) #

Creates a deterministic stencil usage profile for the document.

Parameters

document OfficeIMO.Visio.VisioDocument required
public static VisioDocument DependencyDiagram(VisioDocument document, string pageName, Action<VisioDependencyDiagramBuilder> configure) #

Adds an automatically layered dependency diagram page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument required
pageName string required
configure System.Action<OfficeIMO.Visio.Diagrams.VisioDependencyDiagramBuilder> required
DuplicatePage 2 overloads
public static VisioPage DuplicatePage(VisioDocument document, VisioPage sourcePage, string? name = null) #

Duplicates a page in the same document, preserving page settings, layers, shapes, and internal connectors.

Parameters

document OfficeIMO.Visio.VisioDocument required
Document that owns the source page and receives the duplicate.
sourcePage OfficeIMO.Visio.VisioPage required
Page to duplicate.
name string? = null optional
Optional name for the duplicate. When omitted, a unique copy name is generated.

Returns

VisioPage The duplicated page.
public static VisioPage DuplicatePage(VisioDocument document, VisioPage sourcePage, VisioPageDuplicationOptions? options) #

Duplicates a page in the same document, preserving page settings, layers, shapes, and internal connectors.

Parameters

document OfficeIMO.Visio.VisioDocument required
Document that owns the source page and receives the duplicate.
sourcePage OfficeIMO.Visio.VisioPage required
Page to duplicate.
options OfficeIMO.Visio.VisioPageDuplicationOptions? required
Optional duplication settings.

Returns

VisioPage The duplicated page.
public static VisioDocument EnsureVisualQuality(VisioDocument document, VisioDiagramQualityOptions? options = null, VisioDiagramQualityIssueSeverity minimumSeverity = Warning) #

Throws when a document contains visual quality issues at or above the requested severity.

Parameters

document OfficeIMO.Visio.VisioDocument required
options OfficeIMO.Visio.VisioDiagramQualityOptions? = null optional
minimumSeverity OfficeIMO.Visio.VisioDiagramQualityIssueSeverity = Warning optional
public static VisioDocument Flowchart(VisioDocument document, string pageName, Action<VisioFlowchartBuilder> configure) #

Adds a semantic flowchart page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument required
pageName string required
configure System.Action<OfficeIMO.Visio.Diagrams.VisioFlowchartBuilder> required
public static VisioDiagramQualityReport GetVisualQualityReport(VisioDocument document, VisioDiagramQualityOptions? options = null) #

Creates a visual quality report for every page in a document.

Parameters

document OfficeIMO.Visio.VisioDocument required
options OfficeIMO.Visio.VisioDiagramQualityOptions? = null optional
public static VisioDocument GraphDiagram(VisioDocument document, string pageName, Action<VisioGraphDiagramBuilder> configure) #

Adds an automatically laid out generic graph page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument required
pageName string required
configure System.Action<OfficeIMO.Visio.Diagrams.VisioGraphDiagramBuilder> required
public static VisioInspectionSnapshot Inspect(VisioDocument document) #

Creates a stable, data-oriented snapshot of the document structure.

Parameters

document OfficeIMO.Visio.VisioDocument required
public static VisioDocument NetworkDiagram(VisioDocument document, string pageName, Action<VisioNetworkDiagramBuilder> configure) #

Adds a semantic network diagram page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument required
pageName string required
configure System.Action<OfficeIMO.Visio.Diagrams.VisioNetworkDiagramBuilder> required
public static VisioDocument NetworkTopologyDiagram(VisioDocument document, string pageName, Action<VisioNetworkTopologyDiagramBuilder> configure) #

Adds a semantic network topology page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument required
pageName string required
configure System.Action<OfficeIMO.Visio.Diagrams.VisioNetworkTopologyDiagramBuilder> required
public static VisioDocument OrgChartDiagram(VisioDocument document, string pageName, Action<VisioOrgChartDiagramBuilder> configure) #

Adds a semantic org chart page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument required
pageName string required
configure System.Action<OfficeIMO.Visio.Diagrams.VisioOrgChartDiagramBuilder> required
public static VisioStencilMigrationPlan PlanStencilMigration(VisioDocument document, VisioStencilMigrationMap map) #

Plans a stencil migration map for every foreground page in the document without modifying the document.

Parameters

document OfficeIMO.Visio.VisioDocument required
map OfficeIMO.Visio.VisioStencilMigrationMap required
public static VisioDocument PolishDiagrams(VisioDocument document, VisioDiagramPolishOptions? options = null) #

Applies a deterministic cleanup pass to every foreground page in the document.

Parameters

document OfficeIMO.Visio.VisioDocument required
Document whose pages should be polished.
options OfficeIMO.Visio.VisioDiagramPolishOptions? = null optional
Optional polish settings.
SaveAsImage 2 overloads
public static OfficeConversionReport SaveAsImage(VisioDocument document, string path, VisioImageExportOptions? options = null, CancellationToken cancellationToken = default) #

Writes the selected page to a file and returns its fidelity report.

Parameters

document OfficeIMO.Visio.VisioDocument required
path string required
options OfficeIMO.Visio.VisioImageExportOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

OfficeConversionReport
public static OfficeConversionReport SaveAsImage(VisioDocument document, Stream stream, VisioImageExportOptions? options = null, CancellationToken cancellationToken = default) #

Writes the selected page to a caller-owned stream and returns its fidelity report.

Parameters

document OfficeIMO.Visio.VisioDocument required
stream System.IO.Stream required
options OfficeIMO.Visio.VisioImageExportOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

OfficeConversionReport
SaveAsImageAsync 2 overloads
public static async Task<OfficeConversionReport> SaveAsImageAsync(VisioDocument document, string path, VisioImageExportOptions? options = null, CancellationToken cancellationToken = default) #

Asynchronously writes the selected page to a file and returns its fidelity report.

Parameters

document OfficeIMO.Visio.VisioDocument required
path string required
options OfficeIMO.Visio.VisioImageExportOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

Task<OfficeConversionReport>
public static async Task<OfficeConversionReport> SaveAsImageAsync(VisioDocument document, Stream stream, VisioImageExportOptions? options = null, CancellationToken cancellationToken = default) #

Asynchronously writes the selected page to a caller-owned stream and returns its fidelity report.

Parameters

document OfficeIMO.Visio.VisioDocument required
stream System.IO.Stream required
options OfficeIMO.Visio.VisioImageExportOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

Task<OfficeConversionReport>
public static OfficeConversionReport SaveAsImages(VisioDocument document, string folderPath, VisioImageExportOptions? options = null, CancellationToken cancellationToken = default) #

Saves selected images without retaining payloads and returns aggregate conversion evidence.

Parameters

document OfficeIMO.Visio.VisioDocument required
folderPath string required
options OfficeIMO.Visio.VisioImageExportOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

OfficeConversionReport
public static async Task<OfficeConversionReport> SaveAsImagesAsync(VisioDocument document, string folderPath, VisioImageExportOptions? options = null, CancellationToken cancellationToken = default) #

Asynchronously saves selected images, retaining paths and evidence rather than encoded payloads.

Parameters

document OfficeIMO.Visio.VisioDocument required
folderPath string required
options OfficeIMO.Visio.VisioImageExportOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

Task<OfficeConversionReport>
public static VisioDocument SequenceDiagram(VisioDocument document, string pageName, Action<VisioSequenceDiagramBuilder> configure) #

Adds a semantic sequence diagram page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument required
pageName string required
configure System.Action<OfficeIMO.Visio.Diagrams.VisioSequenceDiagramBuilder> required
public static VisioDocument SwimlaneDiagram(VisioDocument document, string pageName, Action<VisioSwimlaneDiagramBuilder> configure) #

Adds a semantic swimlane diagram page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument required
pageName string required
configure System.Action<OfficeIMO.Visio.Diagrams.VisioSwimlaneDiagramBuilder> required
public static VisioDocument TimelineDiagram(VisioDocument document, string pageName, Action<VisioTimelineDiagramBuilder> configure) #

Adds a semantic timeline page and returns the document for chaining.

Parameters

document OfficeIMO.Visio.VisioDocument required
pageName string required
configure System.Action<OfficeIMO.Visio.Diagrams.VisioTimelineDiagramBuilder> required
public static OfficeConversionResult<IReadOnlyList<OfficeDrawing>, VisioDrawingConversionReport> ToDrawings(VisioDocument document, VisioDrawingOptions? options = null, CancellationToken cancellationToken = default) #

Projects every source page in document order, including blank and background pages.

Parameters

document OfficeIMO.Visio.VisioDocument required
options OfficeIMO.Visio.VisioDrawingOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

OfficeConversionResult<IReadOnlyList<OfficeDrawing>, VisioDrawingConversionReport>
ToImage 3 overloads
public static OfficeImageExportResult ToImage(VisioDocument document, VisioImageExportOptions? options = null, CancellationToken cancellationToken = default) #

Renders the selected page using the encoding in OfficeImageExportOptions.Format.

Parameters

document OfficeIMO.Visio.VisioDocument required
options OfficeIMO.Visio.VisioImageExportOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

OfficeImageExportResult
public static OfficeImageExportResult ToImage(VisioDocument document, VisioImageExportOptions? options, out OfficeConversionReport report, CancellationToken cancellationToken = default) #

Renders the selected page and returns its immutable fidelity report.

Parameters

document OfficeIMO.Visio.VisioDocument required
options OfficeIMO.Visio.VisioImageExportOptions? required
report OfficeIMO.OfficeConversionReport required
cancellationToken System.Threading.CancellationToken = default optional

Returns

OfficeImageExportResult
public static OfficeImageExportResult ToImage(VisioDocument document, OfficeImageExportFormat format, VisioImageExportOptions? options = null, CancellationToken cancellationToken = default) #

Exports the selected document page to a supported raster format or SVG.

Parameters

document OfficeIMO.Visio.VisioDocument required
format OfficeIMO.Drawing.OfficeImageExportFormat required
options OfficeIMO.Visio.VisioImageExportOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

OfficeImageExportResult
public static async Task<OfficeImageExportResult> ToImageAsync(VisioDocument document, VisioImageExportOptions? options = null, CancellationToken cancellationToken = default) #

Renders the selected page with cancellation and returns the encoded image and its diagnostics.

Parameters

document OfficeIMO.Visio.VisioDocument required
options OfficeIMO.Visio.VisioImageExportOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

Task<OfficeImageExportResult>
ToImages 3 overloads
public static IReadOnlyList<OfficeImageExportResult> ToImages(VisioDocument document, VisioImageExportOptions? options = null, CancellationToken cancellationToken = default) #

Renders a batch using the encoding and selection in the options.

Parameters

document OfficeIMO.Visio.VisioDocument required
options OfficeIMO.Visio.VisioImageExportOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

IReadOnlyList<OfficeImageExportResult>
public static IReadOnlyList<OfficeImageExportResult> ToImages(VisioDocument document, OfficeImageExportFormat format, VisioImageExportOptions? options = null) #

Exports a selected range of document pages to a supported raster format or SVG.

Parameters

document OfficeIMO.Visio.VisioDocument required
format OfficeIMO.Drawing.OfficeImageExportFormat required
options OfficeIMO.Visio.VisioImageExportOptions? = null optional

Returns

IReadOnlyList<OfficeImageExportResult>
public static void ToImages(VisioDocument document, OfficeImageExportFormat format, OfficeImageExportConsumer consumer, VisioImageExportOptions? options = null, CancellationToken cancellationToken = default) #

Streams selected document page images without retaining earlier payloads.

Parameters

document OfficeIMO.Visio.VisioDocument required
format OfficeIMO.Drawing.OfficeImageExportFormat required
consumer OfficeIMO.Drawing.OfficeImageExportConsumer required
options OfficeIMO.Visio.VisioImageExportOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional
ToImagesAsync 3 overloads
public static Task<IReadOnlyList<OfficeImageExportResult>> ToImagesAsync(VisioDocument document, VisioImageExportOptions? options = null, CancellationToken cancellationToken = default) #

Renders a batch asynchronously using the same options and evidence contract.

Parameters

document OfficeIMO.Visio.VisioDocument required
options OfficeIMO.Visio.VisioImageExportOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

Task<IReadOnlyList<OfficeImageExportResult>>
public static Task<IReadOnlyList<OfficeImageExportResult>> ToImagesAsync(VisioDocument document, OfficeImageExportFormat format, VisioImageExportOptions? options = null, CancellationToken cancellationToken = default) #

Asynchronously exports selected images through the shared bounded streaming bridge.

Parameters

document OfficeIMO.Visio.VisioDocument required
format OfficeIMO.Drawing.OfficeImageExportFormat required
options OfficeIMO.Visio.VisioImageExportOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

Task<IReadOnlyList<OfficeImageExportResult>>
public static Task ToImagesAsync(VisioDocument document, OfficeImageExportFormat format, OfficeImageExportAsyncConsumer consumer, VisioImageExportOptions? options = null, CancellationToken cancellationToken = default) #

Asynchronously delivers selected images with backpressure and cooperative cancellation.

Parameters

document OfficeIMO.Visio.VisioDocument required
format OfficeIMO.Drawing.OfficeImageExportFormat required
consumer OfficeIMO.Drawing.OfficeImageExportAsyncConsumer required
options OfficeIMO.Visio.VisioImageExportOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

Task
public static OfficeDocumentModel ToOfficeDocumentModel(VisioDocument document, string? sourceName = null, VisioDocumentProjectionOptions? options = null, CancellationToken cancellationToken = default) #

Projects an already loaded Visio document into the neutral document model.

Parameters

document OfficeIMO.Visio.VisioDocument required
sourceName string? = null optional
options OfficeIMO.Visio.VisioDocumentProjectionOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

OfficeDocumentModel
ToSvg 2 overloads
public static string ToSvg(VisioDocument document, VisioSvgSaveOptions? options = null, CancellationToken cancellationToken = default) #

Renders the selected page as decoded SVG text.

Parameters

document OfficeIMO.Visio.VisioDocument required
options OfficeIMO.Visio.VisioSvgSaveOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

string
public static string ToSvg(VisioDocument document, VisioSvgSaveOptions? options, out OfficeConversionReport report, CancellationToken cancellationToken = default) #

Renders SVG text while retaining structured image fidelity diagnostics.

Parameters

document OfficeIMO.Visio.VisioDocument required
options OfficeIMO.Visio.VisioSvgSaveOptions? required
report OfficeIMO.OfficeConversionReport required
cancellationToken System.Threading.CancellationToken = default optional

Returns

string
public static Task<OfficeConversionResult<string>> ToSvgAsync(VisioDocument document, VisioSvgSaveOptions? options = null, CancellationToken cancellationToken = default) #

Renders SVG text asynchronously and returns the completed report.

Parameters

document OfficeIMO.Visio.VisioDocument required
options OfficeIMO.Visio.VisioSvgSaveOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional

Returns

Task<OfficeConversionResult<string>>