# @file-viewer/pptx 中文文档

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

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

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

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

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

- 包体积（解压后）：688 kB，36 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：5 个
- 首次发布：2026-06-20T07:01:10.219Z
- 最新版本发布：2026-10-31T11:06:37.641Z
- 近 30 天下载量：169200（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：66（近 12 个月 66 个）

## 中文简介

从文件查看器提取的原生 PPTX 渲染器

## 安装

```sh
npm install @file-viewer/pptx
```

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

## README

# @file-viewer/pptx

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

Flyfish File Viewer 的原生 PPTX 渲染引擎包，从历史稳定实现中独立拆分，便于持续维护和单独发布。

## 特性

-   纯 TypeScript/DOM 入口，不依赖 Vue、React 或 iframe。
-   使用 Web Worker 解析 PPTX，按页渐进输出，避免阻塞主线程。
-   保留历史原生解析链路中的主题、图片、形状、表格、文本和基础图表处理。
-   支持 `fitMode`、`zoomPercent`、自定义 Worker URL / Worker factory，方便内网、离线和 CSP 场景。
-   图表在放映缩放时保留原始尺寸和文字样式，中文标签按独立的逻辑尺寸测量，支持底部、右侧、顶部、右上和左侧图例。字体由宿主安装或提供；缺少字体时使用浏览器回退字体。

`resolvePptxPackageWorkerUrl()` 可供集成层识别打包器已输出或包目录直接提供的 Worker URL。未识别时返回 `undefined`，不代表文件不存在；集成层仍可使用自己的资产复制策略或显式 Worker 配置。

直接使用 `PptxViewer` 时，Vite 或 Webpack 可直接提供已识别的包内 Worker；无法识别的构建不会猜测应用相对路径。Angular、IIFE、离线静态目录或严格 CSP 部署应使用 `file-viewer-copy-assets` 或显式 `workerUrl`，让 Worker 由最终静态域名稳定提供。

## 使用

```ts
import { PptxViewer } from '@file-viewer/pptx'

const buffer = await file.arrayBuffer()
const viewer = await PptxViewer.open(buffer, document.querySelector('#app')!, {
  fitMode: 'contain',
  zoomPercent: 100,
  onSlideRendered(index) {
    console.log('slide rendered', index)
  },
})

await viewer.setZoom(125)
viewer.destroy()
```

在 Flyfish File Viewer 中通常无需直接使用本包，`@file-viewer/core` 会按 PPTX 类型自动按需加载。

## 常见问题

### @file-viewer/pptx 是什么？

从文件查看器提取的原生 PPTX 渲染器

### 如何安装 @file-viewer/pptx？

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

### @file-viewer/pptx 支持 TypeScript 吗？

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

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

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

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

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

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

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

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

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

