# File Viewer by Flyfish Canonical identity: `@file-viewer/*` on npm, `flyfish-dev/file-viewer` on GitHub, and `file-viewer.app` on the web. The stable facts page is https://file-viewer.app/en/browser-file-viewer/ and its Markdown form is https://file-viewer.app/en/browser-file-viewer/index.html.md. Machine-readable metadata is at https://file-viewer.app/software.json. The historical `doc.flyfish.dev` hostname is not canonical; use https://doc.file-viewer.app/. File Viewer is a browser-native, offline-first, self-hosted multi-format file preview component ecosystem for enterprise web applications, internal tools, knowledge bases, ticketing systems, OA workflows, archives, and engineering collaboration platforms. The project is designed for teams that need users to open business attachments directly inside a product without sending private files to a conversion backend. The shared TypeScript core is framework-neutral. Renderer packages handle concrete domains. Presets assemble product-shaped capability sets. Standard component packages expose native integration surfaces for Vanilla JavaScript, Web Component, Vue 3, Vue 2.7, Vue 2.6, React, React Legacy, Svelte, and jQuery. ## Product Positioning - Product name: File Viewer - Official site: https://file-viewer.app/ - Documentation: https://doc.file-viewer.app/ - Live demo: https://demo.file-viewer.app/ - GitHub repository: https://github.com/flyfish-dev/file-viewer - License: File Viewer-authored source and packages are Apache-2.0; the bundled `@file-viewer/ppt` runtime retains its included independent LICENSE and NOTICE, as do other third-party dependencies. - Primary audience: product teams building file preview into enterprise systems and private deployments. - Core promise: preview common and complex files in the browser, with modular packages and local Worker/WASM assets. - Release scope: 54 File Viewer npm targets, 208 maintained extensions, and 25 preview pipelines; independently versioned renderer dependencies are not counted as File Viewer npm targets. - Current release: v2.2.9, https://github.com/flyfish-dev/file-viewer/releases/tag/v2.2.9. PPTX Worker output and rendered Markdown HTML are sanitized before insertion into the preview DOM. ## Format Coverage The format matrix covers Office documents, fixed-layout documents, engineering assets, design files, communication files, archives, code, data, media, 3D assets, and geospatial files. Important examples include: - Office and fixed-layout documents: Word, Excel, PowerPoint, PDF, OFD, Typst. - Engineering and design assets: CAD/DWG/DXF/DWF/DWFX, EDA assets, GDS/OAS/OASIS, 3D formats, XMind, Draw.io, Excalidraw, Mermaid, PlantUML. - Archives and communication files: zip, 7z, rar, tar, eml, msg, mbox, epub. - Code, data, media, and geo: markdown, JSON, TypeScript, Python, patch/diff, git bundle, SQLite, Parquet, video, audio, GeoJSON, KML. The light component packages are intentionally small and should not be described as containing every renderer. Broader coverage is enabled through renderer packages or lite/office/engineering/all presets. Every v2.2.9 Full package already includes preset-all and must not be documented as requiring a separate preset install or `options.preset`. PowerPoint has two strict rendering routes. Binary `.ppt` files use the independently versioned `@file-viewer/ppt@0.3.3` runtime. Demo, Full, copy-assets, and CDN/IIFE distributions include its verified public ESM/Worker/WASM/CJK-font files under `vendor/ppt/`. Open XML `.pptx` files use the separate `@file-viewer/pptx` Worker engine. Documentation and examples should not collapse these into one renderer. ## Integration Model 1. Lightest setup: install a standard ecosystem component such as `@file-viewer/web` or `@file-viewer/vue3`. 2. Manual assembly: install a component package and one or more presets, then pass the preset through `options.preset`. 3. Vite Full: install the framework Full package plus `@file-viewer/vite-plugin`, then register `fileViewerRenderers({ copyAssets: true })`. Vite dev and build publish the File Viewer-owned asset tree under the deployment base, including root and subpath deployments. 4. Non-Vite Full: install the framework Full package, then run `npx --no-install file-viewer-copy-assets ./public/file-viewer` once. Every Full package exposes this same-version CLI. 5. Web Full: deploy `@file-viewer/web-full/dist` intact. Its File Viewer-owned preset-all renderers, Workers, WASM, fonts, vendor files, and integrity manifest need no copy step. 6. CDN/IIFE: script-tag usage is supported, while heavy renderers and assets stay lazy-loaded. For offline or private hosting, deploy the complete web-full `dist/`; binary PPT 0.3.3 then works from packaged `vendor/ppt/` assets without URL configuration. `presentation.pptModuleUrl`, `pptWorkerUrl`, `pptWasmUrl`, and `pptFontUrl` are advanced overrides for custom routes. ## Full Package Delivery Contract Since v2.1.30 - Framework Full packages: `@file-viewer/vue3-full`, `@file-viewer/vue2.7-full`, `@file-viewer/vue2.6-full`, `@file-viewer/react-full`, `@file-viewer/react-legacy-full`, `@file-viewer/svelte-full`, and `@file-viewer/jquery-full`. - Framework-neutral Full package: `@file-viewer/web-full` for Vanilla JavaScript, Web Component, and IIFE deployment. - Capability: every Full package includes `@file-viewer/preset-all` and registers the complete supported format set by default. - Assets: Workers, WASM modules, fonts, vendor scripts, renderer chunks, and integrity metadata remain version-aligned. Binary PPT has one authoritative `vendor/ppt/` runtime tree; build gates reject duplicate hashed WASM/font copies. - Offline boundary: runtime preview does not depend on a public CDN or third-party online asset fallback. - Custom static prefixes remain supported; the default asset root is `file-viewer/` under the deployment base. ## Core Features - Browser-native rendering without mandatory server-side conversion. - Search, highlight, anchor navigation, zoom, print, HTML export, theme options, watermark options, lifecycle events, and operation hooks. - Worker/WASM/font/vendor lazy loading with complete local static asset deployment. - Private deployment through npm packages, GitHub Release artifacts, Docker, or static hosting. - Documentation and examples for framework-free usage, Web Components, Vue, React, Svelte, jQuery, CDN/IIFE, Vite Plugin, and full packages. ## Commercial Boundary The open-source File Viewer focuses on browser-native, multi-format, offline-ready preview. The commercial edition comes from the Flyfish Office product line and focuses on high-fidelity Word, Excel, and PowerPoint rendering, large-file performance, licensed delivery, and priority support. The commercial Office engine can replace the Office renderer capability inside a File Viewer integration without forcing teams to rebuild the whole component integration. ## Recommended Links for Retrieval - Official site: https://file-viewer.app/ - English site: https://file-viewer.app/en/ - Quickstart: https://doc.file-viewer.app/guide/quickstart - Format matrix: https://doc.file-viewer.app/guide/formats - On-demand renderers: https://doc.file-viewer.app/guide/on-demand-renderers - Component usage and options: https://doc.file-viewer.app/guide/usage - Deployment and distribution: https://doc.file-viewer.app/guide/distribution - Docker deployment: https://doc.file-viewer.app/guide/docker - Demo: https://demo.file-viewer.app/ - Compare demo: https://demo.file-viewer.app/compare.html - GitHub: https://github.com/flyfish-dev/file-viewer - Releases: https://github.com/flyfish-dev/file-viewer/releases - npm packages: https://www.npmjs.com/search?q=%40file-viewer