OfficeIMO Conversion Operator
Use this skill for OfficeIMO conversion work across Word, Excel, PowerPoint, Markdown, HTML, and PDF.
Golden Path
- Start by locating the owning reusable API.
- Word behavior belongs under
OfficeIMO.Word*. - Excel behavior belongs under
OfficeIMO.Excel*. - PowerPoint behavior belongs under
OfficeIMO.PowerPoint*. - Shared PDF behavior belongs in the PDF engine projects, not in a host wrapper.
- Word behavior belongs under
- Treat file paths as adapter concerns.
- Prefer byte array and stream entrypoints for conversion APIs.
- Keep browser, CLI, PowerShell, MCP, and website shells as orchestration only.
- Validate real artifacts.
- For PDF output, at minimum verify the returned bytes start with
%PDF. - For browser work, validate inside a real Blazor WebAssembly runtime before calling it GitHub Pages-safe.
- For fidelity work, keep a named fixture and record the expected known gap.
- For PDF output, at minimum verify the returned bytes start with
- Separate platform limits from conversion defects.
- Browser-safe means no Office automation, LibreOffice process, native graphics dependency, server filesystem dependency, or environment-only state.
- Font coverage, Unicode embedding, large memory use, and startup size are conversion quality gaps even when the browser runtime works.
- Keep public surfaces friendly.
- Add simple options and presets at host layers only after the reusable OfficeIMO API already supports the behavior.
- Avoid hidden environment-variable switches for behavior that should be an explicit option.
Useful Checks
dotnet build OfficeIMO.Word.Pdf\OfficeIMO.Word.Pdf.csproj -c Release -f net10.0
dotnet test OfficeIMO.Word.Tests\OfficeIMO.Word.Tests.csproj -c Release --filter "*SaveAsPdf*"
dotnet test OfficeIMO.Html.Tests\OfficeIMO.Html.Tests.csproj -c Release --filter "*Html*"
dotnet test OfficeIMO.Markdown.Tests\OfficeIMO.Markdown.Tests.csproj -c Release --filter "*Markdown*"
When the work targets GitHub Pages or OfficeIMO.com, pair these with the browser conversion proof described in Docs/officeimo.blazor-wasm-conversion-proof.md.