# 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/ - CLI home: https://file-viewer.app/en/cli/ - CLI guide: https://doc.file-viewer.app/guide/cli - 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. - Source matrix scope: 89 File Viewer npm targets, 275 registered extensions, and 47 preview pipelines; 225 extensions are stable and 50 are experimental. The experimental set contains 23 DICOM/signature mappings, 19 explicit opt-in Adobe design mappings, 7 explicit binary-inspector mappings, and BPMN. - Current published release: v3.2.1, https://github.com/flyfish-dev/file-viewer/releases/tag/v3.2.1. 88 mainline File Viewer packages use 3.2.1; the historical `msdoc-viewer` compatibility package uses 0.2.11. The current source integrates compatibility repairs on `@file-viewer/docx` 0.3.35; Spreadsheet and iWork use the security-hardened `styled-exceljs` 0.21.6 release. ## 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/standard/office/engineering/all presets. Every v3.2.1 Full package preserves the published preset-all compatibility matrix and must not be documented as requiring a separate preset install or `options.preset`. Adobe design, DICOM, and signature renderers remain explicit additions. The CLI's `full` profile defaults to the established DICOM/signature additions after showing their size, runtime, and license boundaries; Adobe design is included only when its formats or capability are explicitly selected. PowerPoint has two strict rendering routes. Binary `.ppt` files use the independently versioned `@file-viewer/ppt@0.3.6` 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. CLI scaffold or integration: run `npm create file-viewer@latest` for a new project or `file-viewer add` from an existing package.json project. The CLI selects frameworks, validated versions, profiles, formats, static assets, and private/offline acquisition without changing existing Full contracts. 2. Lightest setup: install a standard ecosystem component such as `@file-viewer/web` or `@file-viewer/vue3`. 3. Manual assembly: install a component package and one or more presets, then pass the preset through `options.preset`. 4. 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. 5. 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, and `file-viewer copy-assets` provides a unified compatible entry. 6. 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. 7. 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.6 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 frozen 221-extension, 32-pipeline compatibility baseline by default. Adobe design, DICOM, and digital-signature/evidence renderers remain explicit additions. - 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 - CLI: https://doc.file-viewer.app/guide/cli - 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