Convert .pptx presentations and .docx documents to PDF in .NET 10.
The library is safe managed code with no runtime dependencies, Office automation
or native libraries. Office and PDFium are used only by separate validation tools.
Lokad.OoxPdf 0.2.0 is available on NuGet. Read the changelog, migration guide and supported scope and limitations.
Install with dotnet add package Lokad.OoxPdf --version 0.2.0.
using Lokad.OoxPdf;
OoxPdfConverter.Convert("input.docx", "output.pdf", new OoxPdfOptions
{
DiagnosticSink = diagnostic => Console.Error.WriteLine(
$"{diagnostic.Id}: {diagnostic.Message}")
});The same API accepts .pptx. Unsupported content may be simplified or omitted;
inspect diagnostics when accepting a conversion. Complex layout, typography and
charts remain approximate rather than pixel-identical to Office.
File and stream overloads support cooperative cancellation. File output publishes
atomically; caller-owned streams stay open. Discard partial output after a
failure. Stream input requires an explicit OoxPdfOptions.InputKind.
The default resolver reads installed Windows fonts. For Linux or a portable
deployment, supply OoxPdfOptions.FontResolver with packaged or custom fonts.
Missing fonts affect glyph coverage, wrapping and pagination. See
font setup and HTTP font packs.
From a checkout with the SDK pinned in global.json:
dotnet run --project src/Lokad.OoxPdf.Cli -f net11.0 -- convert input.docx output.pdf --diagnostics diagnostics.json --strictWith --strict, exit code 3 means the PDF was produced with warnings or errors.
See diagnostics and exit codes
and DOCX markup modes.
- Capabilities and fallbacks
- Rendering architecture
- Resource limits and hosting
- Qualification results and known failures
- Visual validation and private documents
The 0.3.0 branch targets .NET 10 and .NET 11. Install the pinned .NET 11 SDK
(currently RC3, a prerelease) and .NET 10 SDK 10.0.403, which supplies the
compatibility runtime and reference packs. Published 0.2.0 targets
.NET 10. Use .NET 11 for development and extensive tests; select net10.0
explicitly for compatibility checks.
dotnet build Lokad.OoxPdf.slnx -c Release
dotnet run --no-build --project tests/Lokad.OoxPdf.Tests -c Release -f net11.0 -- --skip-slow
dotnet pack src/Lokad.OoxPdf/Lokad.OoxPdf.csproj -c Release --no-buildPackages go directly to ignored artifacts/nuget/. CI runs on Windows and Ubuntu.
See AGENTS.md for focused
test selection and reuse of qualified build artifacts.