# OfficeCLI Rendering Engine Output Modes: HTML, Screenshot, and Watch Explained

> Explore OfficeCLI rendering engine output modes: HTML, Screenshot, and Watch. Convert documents to AI-readable formats with this powerful CLI tool for Word, Excel, and PowerPoint.

- Repository: [OfficeAI/OfficeCLI](https://github.com/iofficeai/OfficeCLI)
- Tags: deep-dive
- Published: 2026-07-22

---

**OfficeCLI provides three primary rendering output modes—HTML, Screenshot, and Watch—plus nine specialized sub-commands that transform Word, Excel, and PowerPoint documents into AI-readable formats.**

The iOfficeAI/OfficeCLI repository ships with a built-in, high-fidelity rendering engine that converts Office documents into visual representations. Understanding the different OfficeCLI rendering engine output modes enables developers to build multimodal AI agents and debugging workflows that interact with complex document layouts, charts, and 3D models.

## Core OfficeCLI Rendering Engine Output Modes

The rendering engine exposes three primary output modes, each designed for specific integration scenarios. These modes are documented in the README's rendering section (lines 59-66) and implemented through the `IRenderer` interface in [`src/officecli/Core/Rendering/IRenderer.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/src/officecli/Core/Rendering/IRenderer.cs).

### HTML Mode

**HTML mode** generates self-contained, browser-ready documents using the command `officecli view <file> html`. The engine constructs a DOM that mirrors Office's native layout, including tables, shapes, charts, mathematical equations (rendered via KaTeX), and 3D models. All assets are inlined, producing a single portable file.

Implementation details vary by document type:
- PowerPoint rendering logic resides in [`src/officecli/Handlers/Pptx/PowerPointHandler.HtmlPreview.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/src/officecli/Handlers/Pptx/PowerPointHandler.HtmlPreview.cs)
- Word documents are processed in [`src/officecli/Handlers/Word/WordHandler.HtmlPreview.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/src/officecli/Handlers/Word/WordHandler.HtmlPreview.cs)
- Excel spreadsheets use [`src/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/src/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.cs)

### Screenshot Mode

**Screenshot mode** produces per-page PNG images by piping rendered HTML through a headless browser. Invoke this mode using `officecli view <file> screenshot`. This output mode delivers pixel-level accuracy ideal for multimodal AI agents that require visual feedback rather than markup.

The mode supports selective page rendering using the `--page` parameter to limit processing to specific slides or sheets.

### Watch Mode

**Watch mode** launches a local HTTP server that serves live document previews. Triggered by `officecli watch <file>`, this mode opens a browser instance (typically at `http://localhost:26315`) and automatically refreshes the view whenever `add`, `set`, or `remove` commands mutate the document. The auto-refresh functionality is driven by [`src/officecli/Core/Watch/WatchNotifier.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/src/officecli/Core/Watch/WatchNotifier.cs), creating a real-time "render → look → fix" development loop.

## Specialized View Sub-Commands

Beyond the three primary modes, the `view` command offers granular sub-commands that extract specific output types from the same rendering pipeline:

- **outline** – Hierarchical text structure of the document
- **text** – Plain-text dump for quick content scanning
- **annotated** – Text with inline formatting markers preserved
- **stats** – Document statistics including page counts and element tallies
- **issues** – Structural or rendering problems such as overflows, missing alt-text, or formula errors
- **svg** – Vector-based rendering of each page for lossless scaling
- **pdf** – PDF export via the optional exporter plugin
- **forms** – HTML form representation for interactive documents

All sub-commands utilize the same `IRenderer` backend, ensuring consistent parsing across output formats.

## Architecture and Source Code Implementation

The rendering engine's flexibility stems from its interface-based architecture. The `IRenderer` interface in [`src/officecli/Core/Rendering/IRenderer.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/src/officecli/Core/Rendering/IRenderer.cs) defines the contract for pluggable backends, with concrete implementations handling HTML, PNG, and SVG generation.

Document-specific handlers extend this interface:
- [`PowerPointHandler.HtmlPreview.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/PowerPointHandler.HtmlPreview.cs) implements chart and 3D model serialization
- [`WordHandler.HtmlPreview.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/WordHandler.HtmlPreview.cs) handles table structures and equation layout
- [`ExcelHandler.HtmlPreview.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/ExcelHandler.HtmlPreview.cs) manages grid limits and cell formatting boundaries

## Command-Line Examples

```bash

# Generate a static HTML preview of a PowerPoint deck

officecli view deck.pptx html -o /tmp/deck.html

# Produce per-slide PNG screenshots (pages 1-3 only)

officecli view deck.pptx screenshot -o /tmp/deck.png --page 1-3

# Open a live watch server with auto-refresh

officecli watch deck.pptx   # serves at http://localhost:26315

# Extract hierarchical outline from a Word document

officecli view report.docx outline

# Export Excel sheet as scalable vector graphics

officecli view budget.xlsx svg -o /tmp/budget.svg

```

## Summary

- OfficeCLI provides **three primary rendering modes**: HTML (self-contained web pages), Screenshot (PNG images via headless browser), and Watch (live-reload development server).
- **Nine specialized sub-commands** (outline, text, annotated, stats, issues, svg, pdf, forms) offer targeted output formats for AI agents and debugging.
- The architecture centers on the `IRenderer` interface with document-specific implementations in [`PowerPointHandler.HtmlPreview.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/PowerPointHandler.HtmlPreview.cs), [`WordHandler.HtmlPreview.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/WordHandler.HtmlPreview.cs), and [`ExcelHandler.HtmlPreview.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/ExcelHandler.HtmlPreview.cs).
- Watch mode leverages [`WatchNotifier.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/WatchNotifier.cs) to provide real-time synchronization between CLI commands and browser previews.

## Frequently Asked Questions

### What is the difference between HTML and Screenshot output modes?

HTML mode generates a self-contained web page with inlined assets that preserves document structure as markup, while Screenshot mode renders that HTML through a headless browser to produce pixel-perfect PNG images. Use HTML for web integration and Screenshot for multimodal AI agents requiring visual input.

### How does Watch mode detect document changes?

Watch mode runs a local HTTP server (default port 26315) and monitors for `add`, `set`, or `remove` CLI commands. The [`WatchNotifier.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/WatchNotifier.cs) class triggers browser refreshes automatically, enabling immediate visual feedback during document editing workflows.

### Can I export Office documents to PDF using the rendering engine?

Yes, PDF export is available through the `officecli view <file> pdf` sub-command, though it requires the optional exporter plugin. This output mode converts the rendered document through the same `IRenderer` pipeline used for HTML and SVG generation.

### Where is the core rendering logic implemented in the source code?

The rendering contract is defined in [`src/officecli/Core/Rendering/IRenderer.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/src/officecli/Core/Rendering/IRenderer.cs). Format-specific implementations reside in handler-specific files: [`src/officecli/Handlers/Pptx/PowerPointHandler.HtmlPreview.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/src/officecli/Handlers/Pptx/PowerPointHandler.HtmlPreview.cs) for PowerPoint, [`src/officecli/Handlers/Word/WordHandler.HtmlPreview.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/src/officecli/Handlers/Word/WordHandler.HtmlPreview.cs) for Word, and [`src/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.cs`](https://github.com/iOfficeAI/OfficeCLI/blob/main/src/officecli/Handlers/Excel/ExcelHandler.HtmlPreview.cs) for Excel spreadsheets.