Nedev.FileConverters.PptxToPpt
0.1.0
dotnet add package Nedev.FileConverters.PptxToPpt --version 0.1.0
NuGet\Install-Package Nedev.FileConverters.PptxToPpt -Version 0.1.0
<PackageReference Include="Nedev.FileConverters.PptxToPpt" Version="0.1.0" />
<PackageVersion Include="Nedev.FileConverters.PptxToPpt" Version="0.1.0" />
<PackageReference Include="Nedev.FileConverters.PptxToPpt" />
paket add Nedev.FileConverters.PptxToPpt --version 0.1.0
#r "nuget: Nedev.FileConverters.PptxToPpt, 0.1.0"
#:package Nedev.FileConverters.PptxToPpt@0.1.0
#addin nuget:?package=Nedev.FileConverters.PptxToPpt&version=0.1.0
#tool nuget:?package=Nedev.FileConverters.PptxToPpt&version=0.1.0
Nedev.FileConverters.PptxToPpt
PPTX to PPT converter - convert PowerPoint Open XML (.pptx) to legacy binary format (.ppt) with high performance. This library also integrates with the Nedev.FileConverters.Core NuGet package: a file‑converter adapter is registered automatically so that the core's static converter/registry can be used by other projects.
This project has no third‑party dependencies other than the Core package.
Licensed under the MIT License.
Project Status: Functional Prototype (Current)
This project is currently in early development. It provides a functional foundation for converting PPTX files to the legacy PPT format. While core features like text and basic shapes are supported, advanced formatting and complex elements are still in development.
Features
- Pure .NET 10 Implementation: No third-party library dependencies (no Interop, no OpenXML SDK).
- Custom CFBF Writer: Built-in implementation of the Compound File Binary Format (MS-CFB).
- Core Conversion: Basic support for slides, text, and common shapes.
- Media Support: Preliminary support for embedded images.
- CLI Tool: Batch conversion support via command line.
- Performance Focused: Minimal memory footprint and high-speed processing.
Supported Elements
- Slide parsing and generation
- Text boxes and basic text formatting
- Simple geometric shapes (Rectangles, Ellipses, etc.)
- Embedded Pictures (JPEG, PNG)
- Slide Notes
- Basic Master Slide support
- Theme/Font mapping
Roadmap
- Advanced Formatting: Complex text effects, paragraph styles, and bullet points.
- Complex Shapes: SmartArt, group shapes (nested), and advanced Bezier curves.
- Tables & Charts: Full support for PowerPoint tables and OLE-embedded charts.
- Transitions & Animations: Mapping PPTX entrance/exit effects to PPT equivalents.
- Audio/Video: Support for embedded multimedia streams.
- Encryption: Support for password-protected documents.
Project Structure
src/
├── Nedev.FileConverters.PptxToPpt/ # Core library (depends on Nedev.FileConverters.Core NuGet package)
│ ├── Cff/ # Compound File Format writer (MS-CFB)
│ ├── Ppt/ # PPT binary format generator (MS-PPT)
│ ├── Pptx/ # PPTX parser (OpenXML)
│ └── Conversion/ # High-level conversion orchestrator
└── Nedev.FileConverters.PptxToPpt.Cli/ # Command-line interface application
CLI Usage
# Convert single file
dotnet run --project src/Nedev.FileConverters.PptxToPpt.Cli input.pptx # uses Nedev.FileConverters.Core NuGet package for logging/exception
# Specify output directory
dotnet run --project src/Nedev.FileConverters.PptxToPpt.Cli -o output input.pptx
# Batch convert
dotnet run --project src/Nedev.FileConverters.PptxToPpt.Cli -f *.pptx
Library Usage
This project produces a nuget package (Nedev.FileConverters.PptxToPpt) containing
both net8.0 and netstandard2.1 builds. To consume in another project:
Add a package reference:
<PackageReference Include="Nedev.FileConverters.PptxToPpt" Version="0.1.0" />or run
dotnet add package Nedev.FileConverters.PptxToPpt --version 0.1.0.Call the static converter exposed by the package:
using (var input = File.OpenRead("presentation.pptx")) using (var output = Nedev.FileConverters.Converter.Convert(input, "pptx", "ppt")) using (var fs = File.Create("presentation.ppt")) { output.CopyTo(fs); }Implementing
IFileConverterThe core package defines an interface:
namespace Nedev.FileConverters.Core { public interface IFileConverter { Stream Convert(Stream input); } }You can implement this in your own library to register new conversions. A sample adapter already exists in this repo (
Conversion/PptxToPptFileConverter.cs): it writes the incoming stream to temporary files and delegates to the internal converter logic.To register a converter, use the DI extension method provided by the core package:
var services = new ServiceCollection(); services.AddFileConverter("pptx","ppt", new PptxToPptFileConverter()); var provider = services.BuildServiceProvider();After registration the converter becomes available through
Nedev.FileConverters.Converter.Convert(...)or theConverterRegistry.You may decorate your implementation with the
[FileConverter]attribute to allow automatic discovery when the package scans assemblies.
The CLI application demonstrates both the basic usage and how the adapter is
registered on startup; refer to its Program.cs for a working example.
Build
Built with the new .NET 10 features.
dotnet build src/Nedev.FileConverters.PptxToPpt.slnx
Requirements
- .NET 10.0 SDK
| 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 was computed. 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 | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Nedev.FileConverters.Core (>= 0.1.0)
-
net8.0
- Nedev.FileConverters.Core (>= 0.1.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 |
|---|---|---|
| 0.1.0 | 112 | 3/6/2026 |