@capgo/capacitor-pdf-viewer

中文文档
8.2.8发布于 2026/10/15MPL-2.0TypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 4万

在应用程序内打开 PDF 的电容插件 .

中文使用文档
文档目录23 节
  1. *免费开始*
  2. 特征
  3. 使用大小写
  4. 文档
  5. 兼容性
  6. 安装
  7. iOS 设置
  8. 机器人设置
  9. 网页
  10. 使用量
  11. API 密码
  12. 打开(...)
  13. 关闭( c)
  14. gotoPage (...) (中文(简体) )
  15. 设置Zoom (...)
  16. 获取 PluginVersion ()
  17. 添加倾听器( “ 装入 ” ,...)
  18. 添加倾听器( “ pageChange ” ,...)
  19. 添加倾听器( 'error',...)
  20. 添加倾听器( “ 关闭 ” ,...)
  21. 添加倾听器('linkTap',...)
  22. 接口
  23. 类型异名

@ capgo/ 电容器- pdf- 查看器

Capgo - Build Capacitor apps with AI, ship updates instantly

队长:在几分钟内将修正推给您的 Capacitor 用户,在没有Mac的情况下构建已签名的iOS和Android apps,并在一击中回滚.

*免费开始*

14天无限自由审判. 不需要信用卡

🤖 建筑与AI编码代理? 安装 Capgo 技能 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用 @capgo/capacitor-pdf-viewer 在您的电容应用程序中: npx skills add Cap-go/capgo-skills。然后问你的经纪人: 添加@capgo/capor-pdf-viewer到我的Capacitor应用上,并把它接上" 代理设置指南 • 妇女 主机磁共振

@ capgo/ 电容器- pdf- 查看器 在iOS,Android,和web上嵌入了Capacitor应用的本地PDF取景. 与其对抗WebView限制或传输重的JavaScript PDF渲染器,不如从路径打开文件,HTTPS URL(带有自定义头头),或 Base64,并获得系统级渲染:页面导航,剪接缩放,连续或单页滚动,密码保护文档,全屏或内线布局,以及加载,错误,页面更改,链接自带和关闭等事件. 在iOS上它使用PDFKit;在Android上它使用Pdfium;在网络上它使用带有blob URL的浏览器PDF查看器.

特征

  • 从设备路径打开 PDF, file:// URL,HTTPS URL,或 Base64(包括 data: (URIs) (英语)
  • 可选 headers 下载远程 URL( 自动令牌、 饼干) 时
  • IOS和Android上加密的 PDF 密码支持
  • 全屏覆盖或 内入 模式锁定到 DOM 元素(elementId(中文(简体) )
  • 连续垂直滚动或单页模式
  • 程序化 转到页面, (中文(简体) ), 设置Zoom,以及 关闭
  • 活动 : load, (中文(简体) ), pageChange, (中文(简体) ), error, (中文(简体) ), close, (中文(简体) ), linkTap

使用大小写

  • 存储在设备上的发票、手册和机票,或从你的API中作为基数返回64
  • 从带有自定义 HTTP 头的已签名的 URL 下载文件
  • 嵌入式 PDF 预览以窗体或仪表板区域(内置模式)
  • 引导读取流程跳入一页,并听取 PDF 内部的链接水龙头

文档

  • 插件文件 (原始内容存档于2017-03-21). capp. app
  • 教学 安装步骤和实例
  • 队长 用于实时更新、本地构建和插件支持

Android emulator showing the example PDF open on two pages Example app with inline PDF and controls

兼容性

插件版本电容兼容性维护
联合国联合国✅
页:1页:1应要求
页:1页:1应要求

政策:

  • 新的插件从版本开始 8.0.0 (8号电站基线).
  • 对更古老的Capacitor主机的后向相容性按需支持.

安装

npm i @capgo/capacitor-pdf-viewer
npx cap sync

与 Bun 键 :

bun add @capgo/capacitor-pdf-viewer
bunx cap sync

iOS 设置

此插件不需要额外的 Info. plist 密钥或权限 。 它使用苹果PDFKit. 使用远程 PDF URLSession 用你传入的信头 open。对于 HTTPS URL,请遵循您的应用程序通常的 App Transport 安全规则.

机器人设置

插件库目标 分数 24 (Android 7.0)并捆绑出Pdfium (io.legere:pdfiumandroid) (中文(简体) ). 插件 AndroidManifest.xml 是空的: 它没有声明 INTERNET,存储,或FileProvider条目。 如果你打开 网页 源,添加 INTERNET 给您的 应用 显示 :

<uses-permission android:name="android.permission.INTERNET" />

本地文件和 Base64 不需要额外的权限, 超出您的应用程序已经使用的读取路径 .

网页

网络不需要电容同步步骤 。 URL 来源随您一起获取 headers· ; setZoom 由于缩放由浏览器控制,所以是不可操作的。 密码不能在网络上被注入;浏览器可能自行提示.

使用量

import { PdfViewer } from '@capgo/capacitor-pdf-viewer';

await PdfViewer.addListener('pageChange', ({ page, pageCount }) => {
  console.log(`Page ${page} of ${pageCount}`);
});

const { pageCount, page } = await PdfViewer.open({
  source: 'https://example.com/manual.pdf',
  headers: { Authorization: 'Bearer YOUR_TOKEN' },
  mode: 'fullscreen',
  scrollMode: 'continuous',
  page: 1,
});

await PdfViewer.goToPage({ page: 2 });
await PdfViewer.setZoom({ scale: 1.25 });
await PdfViewer.close();

内置预览 隐藏中 :

await PdfViewer.open({
  source: base64FromYourApi,
  sourceType: 'base64',
  mode: 'inline',
  elementId: 'pdf-host',
});

密码保护文件 (iOS和Android): (英语:

await PdfViewer.open({
  source: '/path/on/device/encrypted.pdf',
  sourceType: 'path',
  password: 'secret',
});

在本地贝壳上,从 WebView 源 URL 上加载 PDF 经常失败,因为该源不是真实的文件服务器. 获取 JavaScript 中的字节并传递 sourceType: 'base64' 相反(见 example-app/) (中文(简体) ).

API 密码

Capacitor的原生PDF取景器(iOS上的PDFKit,Android上的Pdfium,网页上的浏览器取景器).

打开(...)

open(options: OpenPdfOptions) => Promise<OpenPdfResult>

从文件、路径、 URL 或 Base64 来源打开 PDF .

参数类型
optionsOpenPdfOptions

回返情况: Promise<OpenPdfResult>

自: 8.0.0 (单位:千美元)


关闭( c)

close() => Promise<void>

关闭活动查看器并删除任何覆盖 .

自: 8.0.0 (单位:千美元)


gotoPage (...) (中文(简体) )

goToPage(options: GoToPageOptions) => Promise<void>

跳转到打开文档中基于 1 的页码.

参数类型
optionsGoToPageOptions

自: 8.0.0 (单位:千美元)


设置Zoom (...)

setZoom(options: SetZoomOptions) => Promise<void>

设置缩放比值乘数( E)1 是本地的默认适配比例. 在网页上此解析而不更改浏览器缩放 .

参数类型
optionsSetZoomOptions

自: 8.0.0 (单位:千美元)


获取 PluginVersion ()

getPluginVersion() => Promise<PluginVersionResult>

获取本地或网络执行版本标记 .

回返情况: Promise<PluginVersionResult>

自: 8.0.0 (单位:千美元)


添加倾听器( “ 装入 ” ,...)

addListener(eventName: 'load', listenerFunc: (event: PdfLoadEvent) => void) => Promise<PluginListenerHandle>

听好 PDF 装入成功 .

参数类型
eventName'load'
listenerFunc(event: PdfLoadEvent) => void

回返情况: Promise<PluginListenerHandle>

自: 8.0.0 (单位:千美元)


添加倾听器( “ pageChange ” ,...)

addListener(eventName: 'pageChange', listenerFunc: (event: PdfPageChangeEvent) => void) => Promise<PluginListenerHandle>

在用户滚动时或当 QQlink PdfviewerPlugin.go ToPage} 运行时聆听页面变化 .

参数类型
eventName'pageChange'
listenerFunc(event: PdfPageChangeEvent) => void

回返情况: Promise<PluginListenerHandle>

自: 8.0.0 (单位:千美元)


添加倾听器( 'error',...)

addListener(eventName: 'error', listenerFunc: (event: PdfErrorEvent) => void) => Promise<PluginListenerHandle>

打开或显示 PDF 时倾听出错 .

参数类型
eventName'error'
listenerFunc(event: PdfErrorEvent) => void

回返情况: Promise<PluginListenerHandle>

自: 8.0.0 (单位:千美元)


添加倾听器( “ 关闭 ” ,...)

addListener(eventName: 'close', listenerFunc: (event: PdfCloseEvent) => void) => Promise<PluginListenerHandle>

收听观看器关闭(用户手势或QQlink PdfviewerPlugin.close}).

参数类型
eventName'close'
listenerFunc(event: PdfCloseEvent) => void

回返情况: Promise<PluginListenerHandle>

自: 8.0.0 (单位:千美元)


添加倾听器('linkTap',...)

addListener(eventName: 'linkTap', listenerFunc: (event: PdfLinkTapEvent) => void) => Promise<PluginListenerHandle>

监听PDF内部的链接.

参数类型
eventName'linkTap'
listenerFunc(event: PdfLinkTapEvent) => void

回返情况: Promise<PluginListenerHandle>

自: 8.0.0 (单位:千美元)


接口

OpenPdf 结果

PDF 成功打开后返回结果 .

Prop类型说明
pageCountnumber文件总页数.
pagenumber目前页面,基于 1 .

OpenPdf 选项

QQlink PdfviewPlugin. open} 的选项 .

Prop类型说明默认自兹
sourcestringPDF 位置: 文件 URL, 设备路径, https URL, 或 base64 (raw 或 data: (原始内容存档于2017-03-21). URI.
sourceTypePdfSourceType明源类. 省略时: - data: 或无计划的生基64 base64 - 说吧 http编号 :https => url - 否则.. file (处理方式为路径或文件 URL; path 土生土长的别名)8.0.0 (单位:千美元)
headersRecord<string, string>下载 https 时使用的 HTTP 头 url 源(例如认证符).8.0.0 (单位:千美元)
passwordstringIOS和Android上加密的PDF的密码. 在网络上,密码不能被注入浏览器查看器;浏览器可能仍然会被提示.8.0.0 (单位:千美元)
modePdfDisplayMode如何是呈出观者.'fullscreen'8.0.0 (单位:千美元)
elementIdstringDOM 元素 ID 当 mode 实值 inline原生代码测量此元素,并将取景者置于其上.8.0.0 (单位:千美元)
pagenumber首页 1分.8.0.0 (单位:千美元)
scrollModePdfScrollMode卷行于观者内.'continuous'8.0.0 (单位:千美元)

GotoPage 选项

QQlink PdfViewerPlugin.go ToPage 的选项 .

Prop类型说明
pagenumber目标页面,基于1.

设置Zoom 选项

链接 PdfViewerPlugin.setZoom 的选项 .

Prop类型说明
scalenumber放大乘数. 1 是本地的默认适配比例.

插件变压器

来自QQlink PdfViewerPlugin.getPluginVersion的插件版本有效载荷 .

Prop类型说明
versionstring平台执行返回的版本标识符(native 在iOS/Android上, web ) (中文(简体) ).

插件听筒

Prop类型
remove() => Promise<void>

PdfLoad 活动

有效载荷 load 活动.

Prop类型说明
pageCountnumber总页数.
pagenumber目前页面,基于 1 .

PdfPageChangeEvent 移动事件

有效载荷 pageChange 活动.

Prop类型说明
pagenumber目前页面,基于 1 .
pageCountnumber总页数.

错误事件

有效载荷 error 活动.

Prop类型说明
messagestring人可读错误信息.

PdfLinkTapEvent 游戏

有效载荷 linkTap 活动.

Prop类型说明
urlstring已调取链接的目标 URL .

类型异名

Pdf 源代码

怎么样 source 弦应该被解释. 在省略时,插件从字符串形状中推断出类型.

'file' | 'path' | 'url' | 'base64'

记录

构造 T 类型 K 的一组属性类型

{ [P in K]: T; }

PdfDisplay 模式

查看器的演示模式 .

  • fullscreen:用本地或浏览器覆盖应用程序.
  • inline: 将查看器放置在由 elementId。 。 。 .

'fullscreen' | 'inline'

Pdf 滚动模式

页面滚动行为.

  • continuous: 页面作为可滚动文档垂直流动.
  • single:一页一页.

'continuous' | 'single'

关闭事件

有效载荷 close 事件(空对象).

Record<string, never>

版本与发布记录

@capgo/capacitor-pdf-viewer 共发布 8 个版本,首次发布于 2026/10/01;过去 12 个月发布了 8 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
8.2.8latest2026/10/1525 天前
8.2.72026/10/1327 天前
8.2.62026/10/091 个月前
8.2.52026/10/081 个月前
8.2.42026/10/081 个月前
8.2.32026/10/011 个月前

关于 @capgo/capacitor-pdf-viewer 的常见问题

@capgo/capacitor-pdf-viewer 是什么?

在应用程序内打开 PDF 的电容插件 .

如何安装 @capgo/capacitor-pdf-viewer?

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

@capgo/capacitor-pdf-viewer 支持 TypeScript 吗?

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

@capgo/capacitor-pdf-viewer 支持 ESM 还是 CommonJS?

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

@capgo/capacitor-pdf-viewer 可以商用吗?

@capgo/capacitor-pdf-viewer 使用 MPL-2.0 许可。弱 Copyleft:可以商用,也可以和闭源代码一起使用;但如果分发时修改了 MPL 授权的文件,这些文件的修改需以 MPL 开源。以上为概括,不构成法律意见,请以许可原文为准。

@capgo/capacitor-pdf-viewer 的下载量有多少?

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

@capgo/capacitor-pdf-viewer 还在维护吗?

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