OfficeIMO.Visio.Pdf 3.4.5

Prefix Reserved
dotnet add package OfficeIMO.Visio.Pdf --version 3.4.5
                    
NuGet\Install-Package OfficeIMO.Visio.Pdf -Version 3.4.5
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OfficeIMO.Visio.Pdf" Version="3.4.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OfficeIMO.Visio.Pdf" Version="3.4.5" />
                    
Directory.Packages.props
<PackageReference Include="OfficeIMO.Visio.Pdf" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add OfficeIMO.Visio.Pdf --version 3.4.5
                    
#r "nuget: OfficeIMO.Visio.Pdf, 3.4.5"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package OfficeIMO.Visio.Pdf@3.4.5
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=OfficeIMO.Visio.Pdf&version=3.4.5
                    
Install as a Cake Addin
#tool nuget:?package=OfficeIMO.Visio.Pdf&version=3.4.5
                    
Install as a Cake Tool

OfficeIMO.Visio.Pdf

OfficeIMO.Visio.Pdf converts Visio documents to searchable PDFs. Choose a semantic report or physical diagram pages. OfficeIMO.Visio owns source projection, and OfficeIMO.Pdf owns PDF composition. Reader packages are not part of this conversion boundary.

using OfficeIMO.Visio;
using OfficeIMO.Visio.Pdf;

VisioDocument diagram = VisioDocument.Load("architecture.vsdx");
diagram.SaveAsPdf("architecture.pdf");

byte[] pdf = diagram.ToPdfBytes();

The default SemanticReport mode produces searchable diagram text and topology through the shared OfficeDocumentModel. Its report identifies semantic fallback rather than claiming native Visio page appearance.

Diagram pages

DiagramPages mode projects the cached artwork into shared Drawing scenes and creates one PDF page for each source page, in source order. Page dimensions include the drawing scale; PDF margins are zero. Blank and background pages remain separate pages. Each page also paints its associated background chain, deepest background first, with each background's own physical scale and layer policy. Composition uses the physical lower-left origin without resizing a background to the foreground page. Artwork crossing a page edge keeps its original placement; the PDF page bounds clip the visible result.

using OfficeIMO.Visio;
using OfficeIMO.Visio.Pdf;

VisioDocument diagram = VisioDocument.LoadLegacyXml("architecture.vdx").Value;
var drawingOptions = new VisioDrawingOptions {
    LayerMode = VisioLayerRenderMode.Printable
};
// Supply licensed font bytes under the source family name when needed.
drawingOptions.Fonts.Add("Arial", File.ReadAllBytes("fonts/Arial.ttf"));
var result = diagram.ToPdfDocumentResult(new VisioToPdfOptions {
    Mode = VisioPdfProjectionMode.DiagramPages,
    DrawingOptions = drawingOptions
});
foreach (var diagnostic in result.FidelityDiagnostics)
    Console.WriteLine($"{diagnostic.Location}: {diagnostic.Code}: {diagnostic.Message}");
result.Save("architecture.pdf");

The cached page projection retains supported outlines, physical strokes, text runs and paragraphs, connector routes and bitmap placements. The selected layer policy filters both painted and searchable page content, including associated backgrounds. Missing or cyclic background references remain preserved in the source and report omissions. Native rendering acceptance for background chains with different page sizes or scales remains open. ShapeSheet recalculation, themes, data graphics, connector fill artwork, native text fitting and exact arrow appearance remain outside the qualified profile. Cached shape reflections follow the native placement contract; native reflected-text appearance acceptance remains open. Shared text fitting and curve flattening report approximations; content that still cannot fit a frame and unprojected content report omissions.

DrawingOptions supplies the same font faces and shaping provider to the scenes and PDF font resolver. PdfOptions configures PDF metadata, security, font resources and generation policy. Explicit PDF font families take precedence when overlaid with drawing fonts. Both options are copied for the operation. Text-clipping diagnostics use the effective PDF font and shaping resources, including those overrides. VisioOptions and ProjectionOptions belong to SemanticReport; combining them with DiagramPages, or supplying diagram settings in semantic mode, throws instead of ignoring settings.

SourceConversionReports retains the typed VisioDrawingConversionReport. RequireNoLoss on drawing options rejects reported loss before PDF composition; SaveLossless on the PDF result rejects it before writing the destination. SaveAsPdfResult and SaveAsPdfResultAsync retain the source report and its page-qualified fidelity diagnostics when strict projection fails. Their failure result exposes HasLoss and leaves the destination unchanged. These checks also reject the declared text-layout approximations. Stencil masters need explicit instantiation on a page before diagram conversion. This contract does not establish Microsoft Visio open/edit/save acceptance.

Page previews and legacy XML

Loaded VDX, VSX and VTX documents use the same conversion path. To include a raster diagram preview alongside searchable semantic content:

VisioDocument diagram = VisioDocument.LoadLegacyXml("architecture.vdx").Value;
var conversion = diagram.ToPdfDocumentResult(new VisioToPdfOptions {
    SourceName = "architecture.vdx",
    VisioOptions = new VisioDocumentProjectionOptions {
        IncludePngPreviewAssets = true,
        PngOptions = new VisioPngSaveOptions {
            PixelsPerInch = 96,
            LayerMode = VisioLayerRenderMode.Printable
        }
    }
});
conversion.Save("architecture.pdf");

foreach (var diagnostic in conversion.Warnings) {
    Console.WriteLine($"{diagnostic.Code}: {diagnostic.Message}");
}

PNG previews use visible screen layers by default. The example selects printable layers independently of screen visibility. Semantic text and topology still include hidden content; preview selection does not filter searchable PDF content. See the layer-selection contract for groups, connectors and multiple memberships.

PNG previews render the supported embedded-image profile, including crop offsets, master inheritance and group transforms. PDF composition reduces oversized previews proportionally to fit the configured page content area. The embedded raster retains its pixels unless the configured image optimization policy changes them.

Preview diagnostics reach the neutral model, Reader and PDF report with their source page, preview kind and fidelity category. Unsupported foreign objects remain visible placeholders and report omission; bitmap header normalization is informational. Raster allocation limits and cancellation apply during preview generation. SVG previews remain assets listed as metadata by the PDF projection; they are not embedded as vector page content.

SemanticReport produces a semantic PDF with optional raster previews. It does not reproduce native Visio page layout, create editable PDF diagram objects, or establish Microsoft Visio open/edit/save acceptance.

Dependency footprint

  • OfficeIMO.Core owns the neutral document model, Drawing scenes, font resources and geometry contracts.
  • OfficeIMO.Visio owns diagram inspection, preview rendering and projection into those models.
  • OfficeIMO.Pdf owns loss-aware PDF composition.
  • OfficeIMO.Reader.Visio and OfficeIMO.Reader.Pdf are not dependencies.

Generated capability summary

This table is generated from the package-neutral OfficeIMO operation catalog. The detailed source contracts remain authoritative for feature-level behavior and limitations.

Operation Supported Partial Preserved Rejected Unsupported Not applicable
Convert 0 1 0 0 0 0

The complete rows for OfficeIMO.Visio.Pdf are published in the generated operation contract.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on OfficeIMO.Visio.Pdf:

Package Downloads
OfficeIMO.Workflows

Typed local document workflows that compose first-party OfficeIMO conversion, PDF, and provenance capabilities.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.4.5 477 10/10/2026
3.4.4 108 9/27/2026
3.4.3 120 9/12/2026
3.4.2 117 9/9/2026
3.4.1 100 9/7/2026
3.4.0 107 9/6/2026
3.3.0 28,641 9/2/2026
3.2.7 105 8/29/2026
3.2.6 116 8/22/2026
3.2.5 115 8/21/2026
3.2.4 112 8/19/2026
3.2.3 113 8/17/2026
3.2.2 111 8/13/2026
3.2.1 111 8/11/2026
3.2.0 115 8/7/2026
3.1.1 107 8/7/2026
3.1.0 115 8/6/2026