# @file-viewer/renderer-epub 中文文档

规范地址：https://npmcn.com/package/%40file-viewer/renderer-epub/

版本：3\.3\.3
npm 元数据更新时间：2026-10-31T11:12:23.024Z
中文译文更新时间：2026-11-14T17:43:06.128Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40file-viewer/renderer-epub
原文对照：https://npmcn.com/package/%40file-viewer/renderer-epub/?lang=original
项目主页：https://doc.file-viewer.app/guide/on-demand-renderers
源码仓库：https://github.com/flyfish-dev/file-viewer

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：595 kB，25 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：2 个
- 首次发布：2026-06-23T06:25:48.603Z
- 最新版本发布：2026-10-31T11:12:22.672Z
- 近 30 天下载量：10971（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：57（近 12 个月 57 个）

## 中文简介

独立的EPUB,FictionBook 2和用于文件查看器的UMD阅读器渲染器插件.

## 安装

```sh
npm install @file-viewer/renderer-epub
```

也可以使用：`pnpm add @file-viewer/renderer-epub`、`yarn add @file-viewer/renderer-epub`、`bun add @file-viewer/renderer-epub`

## README

# @file-viewer/renderer-epub

[English](https://github.com/flyfish-dev/file-viewer/blob/main/packages/renderers/ebook/README.md) · [简体中文](https://github.com/flyfish-dev/file-viewer/blob/main/packages/renderers/ebook/README.zh-CN.md)

Flyfish File Viewer 的独立电子书 renderer 包。它负责 `.epub` 文件解析、目录展示、滚动阅读、上一页/下一页导航和阅读进度同步，也负责 `.umd` 移动电子书的元数据、目录和 zlib 正文解析。

## 用法

```ts
import FileViewer from '@file-viewer/vue3'
import { ebookRenderer } from '@file-viewer/renderer-epub'

const options = {
  builtinRenderers: 'none',
  renderers: ebookRenderer,
}
```

也可以与其他 renderer 组合：

```ts
import { ebookRenderer } from '@file-viewer/renderer-epub'
import { pdfRenderer } from '@file-viewer/renderer-pdf'
import { archiveRenderer } from '@file-viewer/renderer-archive'

const options = {
  builtinRenderers: 'none',
  renderers: [pdfRenderer, archiveRenderer, ebookRenderer],
}
```

## 能力边界

-   `.epub` 使用包内置的 `epubjs` 引擎解析 EPUB 包、OPF 元数据、导航目录和章节资源。引擎按需加载，并在构建时固定使用安全的 XML DOM 实现；用户无需额外安装引擎或配置 CDN。
-   `.umd` 使用项目内解析器读取早期移动电子书封装，并通过 `pako` 解压正文段。
-   阅读区采用滚动文档模式，兼容性优先，避免部分浏览器在超宽分页布局下出现正文白板。
-   支持目录窗格显隐、章节跳转、上一页/下一页和阅读进度展示。
-   不绑定任何在线服务或公共 CDN，适合内网知识库、培训资料和长文档附件预览。
-   随包的 `dist/vendor/epubjs.NOTICE.txt` 记录引擎及所有内联依赖的版本、来源和许可证文本。

## 深色阅读

无需重载的行为适用于观察到的主题属性、系统配色变化及 Vanilla core 的主题更新路径。框架组件与工具栏/controller 的选项更新可能重新初始化预览。

EPUB 正文与目录跟随 `options.theme`，支持 `system` 与实时切换。深色阅读覆盖文字和纯色背景，不反相图片，也不重新加载章节。设置 `epub.darkMode: false` 保留书籍原始配色，设为 `true` 可强制深色阅读。UMD、FB2 的渲染不受影响。

## 迁移说明

`@file-viewer/core` 已不再内置 EPUB / UMD renderer，也不再直接安装 `epubjs` 或 `pako`。需要电子书预览时，请显式安装本包，或直接使用 `@file-viewer/preset-all` 聚合能力；`epubjs` 已作为本包的离线懒加载产物随包发布，不会进入应用的外部生产依赖树。

## 常见问题

### @file-viewer/renderer-epub 是什么？

独立的EPUB,FictionBook 2和用于文件查看器的UMD阅读器渲染器插件\.

### 如何安装 @file-viewer/renderer-epub？

在项目目录运行 npm install @file-viewer/renderer-epub，或使用 pnpm add / yarn add / bun add。

### @file-viewer/renderer-epub 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @file-viewer/renderer-epub 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @file-viewer/renderer-epub 可以商用吗？

@file-viewer/renderer-epub 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @file-viewer/renderer-epub 的下载量有多少？

根据 npm 官方下载统计，@file-viewer/renderer-epub 在 2026/10/15 – 2026/11/13 这 30 天内被下载 10,971 次，日均约 366 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @file-viewer/renderer-epub 还在维护吗？

最新版本 3\.3\.3 发布于 2026/10/31（14 天前）；至今共发布 57 个版本，其中过去 12 个月发布了 57 个；首次发布于 2026/06/23。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

