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
<PackageReference Include="OfficeIMO.PowerPoint.GoogleSlides" Version="3.0.0" />
<PackageVersion Include="OfficeIMO.PowerPoint.GoogleSlides" Version="3.0.0" />
<PackageReference Include="OfficeIMO.PowerPoint.GoogleSlides" />
paket add OfficeIMO.PowerPoint.GoogleSlides --version 3.0.0
#r "nuget: OfficeIMO.PowerPoint.GoogleSlides, 3.0.0"
#:package OfficeIMO.PowerPoint.GoogleSlides@3.0.0
#addin nuget:?package=OfficeIMO.PowerPoint.GoogleSlides&version=3.0.0
#tool nuget:?package=OfficeIMO.PowerPoint.GoogleSlides&version=3.0.0
OfficeIMO.PowerPoint.GoogleSlides
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
DriveExportexports Google Slides to PPTX and loads it throughOfficeIMO.PowerPoint. This is the default and broadest-fidelity import.Nativereads 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, plusnet472on 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 | 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.GoogleWorkspace (>= 3.0.0)
- OfficeIMO.GoogleWorkspace.Drive (>= 3.0.0)
- OfficeIMO.PowerPoint (>= 3.0.0)
- System.Text.Json (>= 10.0.7 && < 11.0.0)
-
.NETStandard 2.0
- OfficeIMO.GoogleWorkspace (>= 3.0.0)
- OfficeIMO.GoogleWorkspace.Drive (>= 3.0.0)
- OfficeIMO.PowerPoint (>= 3.0.0)
- System.Text.Json (>= 10.0.7 && < 11.0.0)
-
net10.0
- OfficeIMO.GoogleWorkspace (>= 3.0.0)
- OfficeIMO.GoogleWorkspace.Drive (>= 3.0.0)
- OfficeIMO.PowerPoint (>= 3.0.0)
-
net8.0
- OfficeIMO.GoogleWorkspace (>= 3.0.0)
- OfficeIMO.GoogleWorkspace.Drive (>= 3.0.0)
- OfficeIMO.PowerPoint (>= 3.0.0)
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 |