@embedpdf/react-pdf-viewer

中文文档
2.15.1发布于 2026/09/17MITTypeScriptESM + CJS近 30 天下载 92.8万

嵌入 PDF 文档的反应组件

中文使用文档
文档目录13 节
  1. 页:1
  2. 导 言
  3. 关键特性
  4. * 安装
  5. 基本用途
  6. Next.js App路由器
  7. 🎨自定义
  8. 主题
  9. 残疾特征
  10. QQ 配置选项
  11. 访问引擎和注册
  12. QQ 无头模式
  13. 许可证
EmbedPDF logo

反应 PDF 查看器

在您的 React 应用程序中嵌入 PDF 文件的简单方法, 包括一个完整、 随时可用的界面 .

Documentation Live Demo NPM Version


页:1

完全通过,先进的例子,和API的参考文献,在我们的文件网站上:

👉 https://www.embedpdf.com/resact-pdf-viewer (中文(简体) )


导 言

这个 @embedpdf/react-pdf-viewer 软件包为 React 应用程序提供了完整、生产准备的 PDF 查看体验.

它被设计成最快的方式 让一个高质量的 PDF 查看器进入您的应用程序。 你不需要建立工具栏,处理布局逻辑, 或担心CSS——它只是工作.

关键特性

  • 准备使用 包括被打磨的工具栏、边栏和缩略图.
  • 响应 ——能无缝地适应移动和桌面屏幕.
  • 主题 ——内置灯光/暗色模式及支持自定义品牌颜色.
  • 可配置 ——轻松地禁用你不需要的特性(如打印或下载).
  • 类型脚本 ——为优秀的开发者体验打出满打字.
  • 下一个. Js 准备 - 与Next.js App路由器和SSR毫无瑕疵地工作.

* 安装

npm install @embedpdf/react-pdf-viewer
# or
pnpm add @embedpdf/react-pdf-viewer
# or
yarn add @embedpdf/react-pdf-viewer

基本用途

导入 PDFViewer 组件,并带有PDF来源.

import { PDFViewer } from '@embedpdf/react-pdf-viewer';

export default function App() {
  return (
    <div style={{ height: '100vh' }}>
      <PDFViewer
        config={{
          src: 'https://snippet.embedpdf.com/ebook.pdf',
          theme: { preference: 'light' },
        }}
      />
    </div>
  );
}

就这样! 您现在有一个功能完备的 PDF 查看器 .

Next.js App路由器

该组件与Next.js无缝地工作. 由于它使用浏览器APIs(Canvas, WebAssembly),所以确保用在一个 客户部分数字 :

'use client';

import { PDFViewer } from '@embedpdf/react-pdf-viewer';

export default function ViewerPage() {
  return (
    <div style={{ height: '100vh' }}>
      <PDFViewer
        config={{
          src: 'https://snippet.embedpdf.com/ebook.pdf',
        }}
      />
    </div>
  );
}

🎨自定义

主题

取景器包括一个强大的主题系统. 您可以设置偏好 'light', (中文(简体) ), 'dark',或 'system',甚至覆盖特定的颜色来匹配你的品牌.

<PDFViewer
  config={{
    src: '/document.pdf',
    theme: {
      preference: 'system',
      light: {
        accent: {
          primary: '#9333ea', // Custom brand color (Purple)
        },
      },
    },
  }}
/>

残疾特征

方便定制用户界面,通过功能化功能,您不需要这些功能 disabledCategories 选项 :

<PDFViewer
  config={{
    src: '/document.pdf',
    disabledCategories: ['annotation', 'print', 'export'],
  }}
/>

现有类别包括: zoom, (中文(简体) ), annotation, (中文(简体) ), redaction, (中文(简体) ), document, (中文(简体) ), page, (中文(简体) ), panel, (中文(简体) ), tools, (中文(简体) ), selection,以及 history。 。 。 .


QQ 配置选项

这个 config prop 接受以下顶级选项 :

选项类型说明
srcstringPDF 文档的 URL 或路径.
themeobject主题配置( 首选, 覆盖) .
tabBar'always' | 'multiple' | 'never'控制文档标签栏的能见度 .
disabledCategoriesstring[]按类别隐藏特定的UI特性.
i18nobject配置本地和翻译 .
annotationsobject配置注释默认值( 作者, 工具) .
zoomobject配置默认缩放级别和限制 .
scrollobject配置滚动方向和逻辑 .

访问引擎和注册

对于高级用例,您可以使用参考文献访问基本的PDFium引擎或插件注册.

import { useRef } from 'react';
import { PDFViewer, PDFViewerRef } from '@embedpdf/react-pdf-viewer';

function App() {
  const viewerRef = useRef<PDFViewerRef>(null);

  const getMetadata = async () => {
    // Access the plugin registry
    const registry = await viewerRef.current?.registry;
    if (!registry) return;

    // Access the engine directly
    const engine = registry.getEngine();
    console.log('Engine ready:', engine);
  };

  return (
    <>
      <button onClick={getMetadata}>Get Metadata</button>
      <PDFViewer ref={viewerRef} config={{ src: '/doc.pdf' }} />
    </>
  );
}

QQ 无头模式

需要完全控制UI吗? 打造定制设计系统??

看看我们 无头组件 提供了没有UI的钩和逻辑:

npm install @embedpdf/core @embedpdf/plugin-zoom ...

读取 无头文档 更多细节.


许可证

嵌入PDF为 麻省理工学院执照商业用途是受欢迎的——保持版权标题完整.

版本与发布记录

@embedpdf/react-pdf-viewer 共发布 35 个版本,首次发布于 2025/12/12;过去 12 个月发布了 35 个版本。

版本发布日期距今
2.15.1latest2026/09/171 个月前
2.15.02026/08/053 个月前
2.14.42026/06/085 个月前
2.14.32026/05/205 个月前
2.14.22026/04/306 个月前
2.14.12026/04/226 个月前

其他发布通道:next → 2.0.0-next.3。

关于 @embedpdf/react-pdf-viewer 的常见问题

@embedpdf/react-pdf-viewer 是什么?

嵌入 PDF 文档的反应组件

如何安装 @embedpdf/react-pdf-viewer?

在项目目录运行 npm install @embedpdf/react-pdf-viewer,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(>=17.0.0)、react-dom(>=17.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@embedpdf/react-pdf-viewer 支持 TypeScript 吗?

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

@embedpdf/react-pdf-viewer 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@embedpdf/react-pdf-viewer 可以商用吗?

@embedpdf/react-pdf-viewer 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@embedpdf/react-pdf-viewer 的下载量有多少?

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

@embedpdf/react-pdf-viewer 还在维护吗?

最新版本 2.15.1 发布于 2026/09/17(1 个月前);至今共发布 35 个版本,其中过去 12 个月发布了 35 个;首次发布于 2025/12/12。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。