Directly Preview PowerPoint (.pptx) Presentations Inside VS Code with Continuous Vertical Scrolling & High-Fidelity Rendering.
Overview β’ Features β’ Code Architecture β’ System Flow β’ Structure β’ Quick Start β’ License
A custom editor extension (LoNebula9.powerpoint-viewer) for VS Code that enables direct in-editor previewing of PowerPoint presentations (.pptx). Renders all slides as continuous vertical-scrolling high-resolution images, featuring zoom controls (50% to 200%), slide navigation, and automatic temporary file cleanup.
| Icon | Feature | Outcome & Real Proof |
|---|---|---|
| π | Continuous Vertical Scrolling | Scroll through all presentation slides seamlessly like a document without clicking next/previous |
| π― | High-Fidelity Rendering Engine | Faithfully renders complex PowerPoint typography, smart shapes, and formatting via LibreOffice |
| π | Interactive Zoom Controls | Adjust magnification from 50% to 200% with real-time responsive scaling |
| π§Ή | Automated Cache Cleanup | Cleans temporary slide image caches automatically upon editor close |
previewProvider.ts: Implementsvscode.CustomReadonlyEditorProviderregistered topowerpoint-viewer.preview, hosting the interactive Webview.converter.ts: Orchestrates background headless LibreOffice rendering (soffice --headless --convert-to pdffollowed by PDF page extraction) to render high-resolution slide PNGs.- Webview UI (
getHtmlForWebview): Continuous vertical slide column with zoom controls, current slide indicator, and theme-adaptive styling. - Resource Management:
cleanupAllTempFiles()automatically purges extracted slide caches on editor disposal.
graph LR
PPTX[π PowerPoint .pptx File] --> Provider[βοΈ PowerPointPreviewProvider]
Provider --> Converter[π Headless Conversion Pipeline]
Converter --> SlideImages[πΌοΈ High-Res Slide PNGs]
SlideImages --> Webview[π» VS Code Custom Webview Editor]
Webview --> Scroll[π Continuous Vertical Presentation View]
classDef primary fill:#d97706,stroke:#b45309,stroke-width:2px,color:#fff;
classDef accent fill:#3b82f6,stroke:#2563eb,stroke-width:2px,color:#fff;
class Provider,Converter primary;
class SlideImages,Webview,Scroll accent;
powerpoint_viewer_extension/
βββ π assets/ # Marketplace PNG hero banners
β βββ π¨ hero.png
βββ π src/
β βββ π previewProvider.ts # CustomReadonlyEditorProvider & Webview UI
β βββ π converter.ts # LibreOffice headless conversion pipeline
β βββ π extension.ts # Extension activation & registration
βββ π package.json # Extension manifest & custom editor schema
βββ π README.md # Documentation# Install from Marketplace:
ext install LoNebula9.powerpoint-viewer
# Or build locally:
npm install
npm run compileReleased under the MIT License. Crafted with precision by LoNebula
