# 快速开始
Get Running Fast

如果你现在最想做的是“尽快看到效果”,这一页会先给最短可运行路径。 先选生态组件,再按业务文件类型选择 preset 或 renderer;跑通后再进入按需装配、离线资源和工具栏定制。

## 三步接入 | 步骤 | 做什么 | 最短答案 | | --- | --- | --- | | 1 | 选生态组件 | 最轻入口用 `@file-viewer/web` / `@file-viewer/vue3` / `@file-viewer/react` 等标准包;一步到位用 `@file-viewer/web-full` / `@file-viewer/vue3-full` / `@file-viewer/react-full` 等 full 包 | | 2 | 选格式能力 | 标准包按需注入 `preset-lite`、`preset-office`、`preset-engineering` 或 `preset-all`;full 包默认已启用完整矩阵 | | 3 | 传入文件和 options | `url="/files/demo.pdf"` 或 `file={file}`,标准包把 `preset` 放进 `options`,full 包可直接传主题、工具栏、水印等业务配置 | 本页只保留最短可运行路径。完整 options、renderer 包清单和工具栏/水印/打印/搜索等参数见 [组件用法](/guide/usage),按需装配和 Vite 插件细节见 [模块化与按需装配](/guide/on-demand-renderers)。 ## 先选接入路线 | 方案 | 适合谁 | 优点 | 你应该看哪页 | | --- | --- | --- | --- | | 纯 JS 集成 | 非框架页面、微前端壳、任意 Web 系统 | `` 原生组件,也可用 `mountViewer` 命令式挂载 | [纯 JS 集成](/guide/quickstart-web) | | Vue3 组件集成 | Vue 3 项目 | 主推组件体验,完整渲染能力直接进入 Vue 应用 | [Vue3 集成](/guide/quickstart-vue3) | | Vue2 组件集成 | Vue2.7 / Vue2.6 项目 | 保留旧业务栈,体验与 Vue3 一致 | [Vue2 集成](/guide/quickstart-vue2) | | React 组件集成 | React 16.8 / 17 / 18 / 19 项目 | 原生 React 组件,props、事件和 ref 都能直接调试 | [React 集成](/guide/quickstart-react) | | jQuery / Svelte | 老后台、SvelteKit 或轻量页面 | 独立标准组件包,复用同一套 core 和 options | [生态组件总览](/guide/ecosystem) | | Core / PPTX 引擎 | 自研组件、深度二开、单独验证 PPTX | framework-neutral 能力与独立 renderer 包 | [生态组件总览](/guide/ecosystem) |
推荐经验: 先用标准组件包和一个明确的 preset 跑通业务文件,例如 Vue3 + preset-office;确认格式范围后,再收敛到 preset-lite、单 renderer,或扩展到 preset-engineering / preset-all。core 负责底层预览能力和 API,各生态组件负责原生接入体验。
移动端提示: H5 / 手机浏览器场景请给预览容器设置明确高度,例如 height:100dvh; min-height:0,工具栏建议使用 toolbar.position:'bottom-right'。React Native 请通过 WebView 承载 H5 预览页,DOM 版组件不能直接挂在原生 RN 视图中。详细示例见 React 移动端接入
## 先理解安装边界 直接安装 `@file-viewer/vue3`、`@file-viewer/react`、`@file-viewer/web` 这类标准组件包是最轻的接入方式,它们只提供当前框架的原生组件、类型、controller 和 core 基础能力,不会默认把 PDF、Office、CAD、Typst、压缩包等重型渲染依赖全部装进业务项目。 如果你的目标是先完整验收所有格式,可以使用 full 包。full 包内部已引入 `@file-viewer/preset-all`,保留同样的组件 API,但默认具备官方 Demo 的完整格式矩阵。CDN / script 标签场景优先使用 `@file-viewer/web-full`,jsDelivr / unpkg 会直接从 npm 分发完整 IIFE,不需要把完整依赖下载到业务仓库;脚本会按自身 URL 自动定位随包分发的 Worker、WASM、字体和 vendor 资源。内网、严格 CSP 或完全离线部署时,再把这些资源同步到自己的静态域。 | 模式 | 安装示例 | 特点 | | --- | --- | --- | | 最轻标准包 | `npm i @file-viewer/vue3 @file-viewer/preset-office` | 按业务选择 preset / renderer,安装体积最可控 | | 完整 full 包 | `npm i @file-viewer/vue3-full` | 默认启用 `preset-all`,适合后台全格式附件中心 | | CDN full | `https://cdn.jsdelivr.net/npm/@file-viewer/web-full@latest/dist/flyfish-file-viewer-web-full.iife.js` | 无需本地安装,适合传统页面快速试跑完整矩阵 | 需要预览具体文件格式时,再选择一个 preset 或单独 renderer: | 能力包 | 覆盖范围 | 推荐场景 | | --- | --- | --- | | `@file-viewer/preset-lite` | 文本、Markdown、代码、图片、音频、视频 | 常见轻附件、IM / 工单附件 | | `@file-viewer/preset-office` | PDF、Word、Excel、PowerPoint、OFD、RTF、OpenDocument | OA、审批、知识库、合同归档 | | `@file-viewer/preset-engineering` | CAD、3D、绘图、XMind、Geo、Typst、Archive、Data、EDA | 工程图纸、研发附件、设计资产 | | `@file-viewer/preset-all` | 官方 Demo 的完整格式矩阵 | 演示站、内部全格式附件中心 | | 单个 renderer | 例如 `@file-viewer/renderer-pdf`、`@file-viewer/renderer-word` | 只需要少数格式、追求最小依赖 | 最稳定的通用接入方式是显式 import preset 或 renderer,并通过 `options.preset` / `options.renderers` 注入给组件。这个方案不依赖 Vite,适用于 Webpack、Rspack、Rollup、Umi、传统多页应用、微前端壳和内部组件库。Vite 项目可以再使用 `@file-viewer/vite-plugin` 省去手动 import,并自动复制离线资源。 ### 通用方案:options.preset 注入 安装当前生态组件包和一个 preset: ```bash pnpm add @file-viewer/vue3 @file-viewer/preset-office ``` ```ts import officePreset from '@file-viewer/preset-office' export const viewerOptions = { preset: officePreset, rendererMode: 'replace', theme: 'light', toolbar: { position: 'bottom-right' } } ``` 组件层只需要传同一份 options: ```vue ``` 多个能力包直接组合到同一个 `preset` 字段,不需要再学习第二个 options 名称: ```ts import officePreset from '@file-viewer/preset-office' import engineeringPreset from '@file-viewer/preset-engineering' export const viewerOptions = { preset: [officePreset, engineeringPreset], rendererMode: 'replace' } ``` 只需要少数格式时,跳过 preset,直接安装单 renderer: ```bash pnpm add @file-viewer/vue3 @file-viewer/renderer-pdf ``` ```ts import { pdfRenderer } from '@file-viewer/renderer-pdf' export const viewerOptions = { renderers: [pdfRenderer], rendererMode: 'replace' } ``` 如果打开的是支持矩阵内但未装配的格式,预览器会给出应该安装哪个 preset / renderer 的提示;只有真正不在矩阵中的扩展名才提示不支持。 ### 一步到位:full 包 full 包适合希望先获得完整格式体验、再按业务优化体积的团队。它们与标准包暴露同样的 props、事件、controller 和 options,只是默认已启用完整 preset: | 生态 | full 包 | 标准包 | | --- | --- | --- | | Vanilla JS / Web Component | `@file-viewer/web-full` | `@file-viewer/web` | | Vue 3 | `@file-viewer/vue3-full` | `@file-viewer/vue3` | | Vue 2.7 | `@file-viewer/vue2.7-full` | `@file-viewer/vue2.7` | | Vue 2.6 | `@file-viewer/vue2.6-full` | `@file-viewer/vue2.6` | | React 18 / 19 | `@file-viewer/react-full` | `@file-viewer/react` | | React 16.8 / 17 | `@file-viewer/react-legacy-full` | `@file-viewer/react-legacy` | | jQuery | `@file-viewer/jquery-full` | `@file-viewer/jquery` | | Svelte | `@file-viewer/svelte-full` | `@file-viewer/svelte` | ```bash npm install @file-viewer/vue3-full ``` ```ts import FileViewer from '@file-viewer/vue3-full' ``` ```vue ``` React / Vue2 / Svelte / jQuery 只需要把包名替换为对应 full 包,组件写法保持一致。 ### CDN full:完整能力快速试跑 无构建工具或临时验证页面可以直接使用 CDN full 包。CDN 不占用本地项目安装体积,适合演示、POC 和传统后台页面快速试跑: ```html
``` 也可以使用原生组件写法: ```html ``` ### Vite 插件:免配置自动装配 Vite 项目可以在通用方案基础上安装并注册插件。安装 `@file-viewer/vite-plugin` 和任意 `@file-viewer/preset-*` 后,在 `vite.config.ts` 注册 `fileViewerRenderers({ copyAssets:true })`,插件就会自动发现已安装 preset、注入 renderer virtual module,并复制 Worker / WASM / 字体 / vendor 资源。业务代码可以不再手动 import preset: ```bash pnpm add @file-viewer/vue3 @file-viewer/preset-office pnpm add -D @file-viewer/vite-plugin ``` ```ts // vite.config.ts import { fileViewerRenderers } from '@file-viewer/vite-plugin' export default { plugins: [ fileViewerRenderers({ copyAssets: true // 无需 preset:'office',插件会自动发现已安装的 @file-viewer/preset-office。 }) ] } ``` 重度用户需要最快拥有全部能力时,直接把 preset 换成全量包: ```bash pnpm add @file-viewer/vue3 @file-viewer/preset-all pnpm add -D @file-viewer/vite-plugin ``` 需要自定义时再显式配置: | 选项 | 适合场景 | | --- | --- | | `copyAssets:true` | 自动复制 Worker、WASM、PDF 字体、CAD、Typst、Archive、Data 等离线资源,推荐生产和内网部署开启 | | `formats` / `renderers` | 不使用 preset、或在 preset 外补充少数格式时,生成精确 renderer import | | `scan:true` | 让插件扫描 `fileViewerFormats`、`data-file-viewer-formats`、上传 `accept` 等源码 hint | | `preset:'auto'` / `autoPresets:true` | 开启 `scan:true` 时仍保持“根据已安装 preset 自动激活能力” | | `inject:false` | 关闭自动注入,改为手动导入 `virtual:file-viewer-renderers` 并传给 `options.renderers` | | `chunkStrategy:'renderer'` | 按 renderer 拆分 chunk,方便缓存、排查和分析重型格式体积 | 默认推荐路径是 `fileViewerRenderers({ copyAssets:true })`。只有需要极致裁剪、源码扫描或严格 registry 管理时,才需要显式配置上面的选项。 ## 运行环境 - Node.js `>= 18` - 纯 JS、React、Vue2 / Vue3 项目都可以使用 npm、pnpm、yarn 或业务项目已有包管理器 - 浏览器需要支持现代前端能力,建议优先在最新版 Chrome 或 Edge 中联调 ## 语言与文案 组件默认 `locale: 'auto'`,会根据浏览器语言在中文和英文之间自动选择。需要固定语言或覆盖文案时,直接通过同一套 `options` 传入: ```ts const options = { locale: 'en-US', messages: { 'toolbar.download': 'Save file' } } ``` 也可以使用分组写法: ```ts const options = { i18n: { locale: 'zh-CN', messages(key, params, locale) { return key === 'state.empty.title' ? '请选择文件' : undefined } } } ``` `locale`、`messages` 和 `i18n` 在 Vanilla JS / Pure Web、Vue、React、jQuery、Svelte 标准组件包中保持一致。 ## 纯 JS 最短路径 ```bash npm install @file-viewer/web @file-viewer/preset-office ``` ```html ``` 传统后台页面或无构建工具项目请使用 IIFE 全局包接入;详细示例见 [纯 JS 集成](/guide/quickstart-web)。 ## Vue3 最短路径 ```bash pnpm add @file-viewer/vue3 @file-viewer/preset-office ``` ```ts import { createApp } from 'vue' import App from './App.vue' import FileViewer from '@file-viewer/vue3' createApp(App).use(FileViewer).mount('#app') ``` ```vue ``` ## Vue2 最短路径 Vue2.7 项目优先使用 `@file-viewer/vue2.7`,能力与 Vue3 包保持一致,入口会自动带上样式: ```bash pnpm add @file-viewer/vue2.7 @file-viewer/preset-office ``` ```ts import Vue from 'vue' import App from './App.vue' import FileViewer from '@file-viewer/vue2.7' Vue.use(FileViewer) new Vue({ render: h => h(App) }).$mount('#app') ``` Vue2.6 老项目使用 `@file-viewer/vue2.6`。完整步骤见 [Vue2 集成](/guide/quickstart-vue2)。 ## React 最短路径 ```bash npm install @file-viewer/react @file-viewer/preset-office ``` ```tsx import FileViewer from '@file-viewer/react' import officePreset from '@file-viewer/preset-office' export function Preview() { return (
) } ``` 完整步骤见 [React 集成](/guide/quickstart-react)。 ## 下一步建议 - 想了解 Demo 中每个示例文件的作用: 看 [Demo 说明](/guide/demo) - 想查看 Vanilla JS / Pure Web、Vue3、Vue2、React、jQuery、Svelte、Core 和 PPTX 引擎的完整包矩阵: 看 [生态组件总览](/guide/ecosystem) - 想明确 `file`、`url`、水印、工具栏、压缩包缓存和导出的参数行为: 看 [组件用法](/guide/usage) - 准备做本地验证和打包: 看 [本地开发与打包](/guide/development) - 想下载公开源码、成品或了解优先支持: 看 [发布与开源分发](/guide/distribution)