OfficeIMO.PowerPoint.GoogleSlides 3.0.0

Prefix Reserved
dotnet add package OfficeIMO.PowerPoint.GoogleSlides --version 3.0.0
                    
NuGet\Install-Package OfficeIMO.PowerPoint.GoogleSlides -Version 3.0.0
                    
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.PowerPoint.GoogleSlides" Version="3.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OfficeIMO.PowerPoint.GoogleSlides" Version="3.0.0" />
                    
Directory.Packages.props
<PackageReference Include="OfficeIMO.PowerPoint.GoogleSlides" />
                    
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.PowerPoint.GoogleSlides --version 3.0.0
                    
#r "nuget: OfficeIMO.PowerPoint.GoogleSlides, 3.0.0"
                    
#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.PowerPoint.GoogleSlides@3.0.0
                    
#: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.PowerPoint.GoogleSlides&version=3.0.0
                    
Install as a Cake Addin
#tool nuget:?package=OfficeIMO.PowerPoint.GoogleSlides&version=3.0.0
                    
Install as a Cake Tool

OfficeIMO.PowerPoint.GoogleSlides

nuget version nuget downloads

OfficeIMO.PowerPoint.GoogleSlides provides bidirectional translation between OfficeIMO.PowerPoint presentations and Google Slides. It keeps the editable core native and makes fidelity fallbacks visible through a translation report.

Install

dotnet add package OfficeIMO.PowerPoint.GoogleSlides

Create a Google presentation

using OfficeIMO.GoogleWorkspace;
using OfficeIMO.PowerPoint;
using OfficeIMO.PowerPoint.GoogleSlides;

using PowerPointPresentation deck = PowerPointPresentation.Create();
PowerPointSlide slide = deck.AddSlide();
slide.AddTextBoxPoints("Quarterly review", 30, 40, 500, 80);
slide.Notes.Text = "Mention the year-over-year comparison.";

var session = new GoogleWorkspaceSession(
    new StaticAccessTokenCredentialSource("<google-access-token>"),
    new GoogleWorkspaceSessionOptions { DefaultFolderId = "reports-folder-id" });

var options = new GoogleSlidesSaveOptions { Title = "Quarterly review" };
GoogleSlidesTranslationPlan plan = deck.BuildGoogleSlidesPlan(options);
GooglePresentationReference result = await deck.ExportToGoogleSlidesAsync(session, options);

Console.WriteLine(result.WebViewLink);
foreach (TranslationNotice notice in result.Report.Notices) {
    Console.WriteLine($"{notice.Severity}: {notice.Message}");
}

Text boxes, core text styling, hyperlinks, tables, pictures, basic shapes, slide size, solid backgrounds, and speaker notes are authored as editable Google Slides content. By default a slide containing charts, SmartArt, media, OLE, or another unsupported complex object is rendered to one PNG so the visual result remains coherent. Select PreferNativeAndReport only when skipping unsupported objects is acceptable.

Replace safely

Read or import the Google presentation first and pass the observed revision when replacing it:

GoogleSlidesImportResult imported = await session.ImportGoogleSlidesAsync(
    "presentation-id",
    new GoogleSlidesImportOptions { Mode = GoogleSlidesImportMode.Native });

using (imported.Presentation) {
    var replace = new GoogleSlidesSaveOptions {
        Location = new GoogleDriveFileLocation { ExistingFileId = imported.Source.FileId },
        Replace = new GoogleSlidesReplaceOptions {
            ExpectedRevisionId = imported.Source.RevisionId
        }
    };

    await deck.ExportToGoogleSlidesAsync(session, replace);
}

An observed revision is required for an existing presentation. A stale revision fails before mutation. OverwriteLatest is an explicit last-writer-wins escape hatch and intentionally omits the Slides write guard.

Set TemplatePresentationId to copy a template before authoring. Template copy, target folder placement, shared-drive options, and metadata are handled through OfficeIMO.GoogleWorkspace.Drive.

Import modes

  • DriveExport exports Google Slides to PPTX and loads it through OfficeIMO.PowerPoint. This is the default and broadest-fidelity import.
  • Native reads Slides API objects directly. It imports slide size, text boxes and core styles, hyperlinks, tables, images, geometry, and speaker-note text, and returns the Slides revision needed for safe replacement.

The Slides API fetches created images from a URL. Export therefore creates short-lived public Drive objects and removes their permissions and files after the batch, including failure paths. Do not grant permanent public access to source assets.

Authentication and scopes

The core package has no dependency on the Google client SDK. Supply any IGoogleWorkspaceCredentialSource, or install OfficeIMO.GoogleWorkspace.Auth.GoogleApis when you want adapters for Google service-account or installed-application credentials.

Authoring uses GoogleWorkspaceScopeCatalog.SlidesAuthoring (drive.file and presentations). Native read uses presentations.readonly; Drive-export import also needs Drive read access appropriate to the file.

Targets and license

  • Targets: netstandard2.0, net8.0, net10.0, plus net472 on Windows.
  • License: MIT.
  • Repository: EvotecIT/OfficeIMO

See GoogleSlidesFeatureSupportCatalog.Features for the code-owned support matrix and the complete OfficeIMO package map for related formats.

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

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.0 74 7/20/2026