@capgo/capacitor-printer

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

用于打印文档、 HTML、 PDF 、 图像和网页视图的电容插件

中文使用文档
文档目录24 节
  1. *免费开始*
  2. 主要特点
  3. 为什么是电容打印机?
  4. 文档
  5. 兼容性
  6. 安装
  7. 使用量
  8. API 密码
  9. 打印Base64(...)
  10. 打印文件(...)
  11. 打印Html(...)
  12. 打印Pdf(...)
  13. 打印Iframe(...)
  14. 打印WebView(...)
  15. 获取 PluginVersion ()
  16. 接口
  17. Android 配置
  18. 保护
  19. 变量
  20. 平台支持
  21. 页:1
  22. 大文件
  23. 网络平台
  24. 打印样式

@ capgo/ 电容器打印器

打印文档, HTML, PDF, 图像和当前从您的 Capacitor app 的网页视图, 并使用 iOS 和 Android 上的本地打印对话框 .

Capgo - Build Capacitor apps with AI, ship updates instantly

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

*免费开始*

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

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

@capgo/capacitor-printer for Capacitor apps

主要特点

  • HTML 语言数字 : printHtml() 打印 HTML 字符串.
  • PDF 和文件数字 : printPdf(), (中文(简体) ), printFile() 财务报告和审定财务报表 printBase64() 用于设备文件和基础64数据.
  • 网页内容数字 : printWebView() 打印当前页面并 printIframe() 打印一个 iframe.
  • 本地对话框数字 : UIPrintInteractionController iOS和Android打印框架.
  • 平台: iOS,Android和Web. 互联网档案馆的存檔,存档日期2013-12-02. Web使用浏览器打印对话框.

为什么是电容打印机?

A 类 自由和开源 具有全面特性的打印解决方案 :

  • 多种格式 - 打印HTML、PDF、图像和基础64数据
  • 本地 APIs - 使用UIPrint接口控制器(iOS)和打印管理器(Android)
  • 网络支持 - 在所有平台(包括网页浏览器)开展工作
  • 打印定制 - 支持CSS打印样式和自定义页面名称
  • 跨平台 - 一致的API跨iOS,Android,和Web

完全适合发票的生成、报告打印、文件共享以及任何需要本地印刷能力的应用程序.

文档

这里有最完整的医生: https://capgo.app/docs/plugins/printer/ 页面存档备份,存于互联网档案馆

兼容性

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

说明: 此插件的主要版本沿用了Capacitor的主要版本. 使用匹配您的 Capacitor 安装的版本( 如 Capacitor 8 的插件 v8) 。 只有最新的主要版本得到积极维护.

安装

您可以使用我们的 AI 辅助设置安装插件 。 使用以下命令将 Capgo 技能添加到您的 AI 工具 :

npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins

然后使用下列提示:

Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-printer` plugin in my project.

如果您更喜欢手动设置,请通过运行以下命令来安装插件,并遵循下面的平台特定指令:

npm install @capgo/capacitor-printer
npx cap sync

使用量

import { Printer } from '@capgo/capacitor-printer';

// Print HTML content
await Printer.printHtml({
  name: 'My Document',
  html: '<html><body><h1>Hello World</h1><p>This is a test document.</p></body></html>',
});

// Print PDF file
await Printer.printPdf({
  name: 'Invoice',
  path: 'file:///path/to/document.pdf',
});

// Print image from base64
await Printer.printBase64({
  name: 'Photo',
  data: 'JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC9UeXBlL...',
  mimeType: 'image/jpeg',
});

// Print current web view
await Printer.printWebView({
  name: 'Web Page',
});

API 密码

打印Base64(...)

printBase64(options: PrintBase64Options) => Promise<void>

将打印的 UI 显示为已编码为 Base64 字符串的文件 .

平台行为 :

  • iOS系统: 使用具有基数64解码数据的 UIPrint 交互控制器
  • 机器人: 使用带有基础64解码数据的打印管理器
  • 网页: 从 Base64 数据创建 blob并打开打印对话框

性能警告 : 大型文件在解码基础64时会由于内存限制而导致应用崩溃. 对于大于5MB的文件,建议使用平面File()来取而代之.

参数类型说明
optionsPrintBase64Options- 用于印刷的基数64数据和配置

自: 7.0.0 (单位:千美元)


打印文件(...)

printFile(options: PrintFileOptions) => Promise<void>

向打印设备文件提交打印 UI .

平台行为 :

  • iOS系统: 使用带有文件 URL 的 UIPrint Interaction 控制器. 支持文件://路径或路径相对于app的文档目录.
  • 机器人: 使用带有文件路径的打印管理器. 支持内容://URIs和文件://路径.
  • 网页: 读取文件并打开打印对话框

支持的文件类型 :

  • PDF 文档 (应用程序/pdf)
  • 图像:JPEG、PNG、GIF、HEIC、HEIF
参数类型说明
optionsPrintFileOptions- 打印的文件路径和配置

自: 7.0.0 (单位:千美元)


打印Html(...)

printHtml(options: PrintHtmlOptions) => Promise<void>

呈现打印 UI 打印 HTML 文档.

平台行为 :

  • iOS系统: WKWebView 中的 Renders HTML, 然后使用 UIPrint Interaction 控制器打印
  • 机器人: WebView 中的渲染器 HTML, 然后使用打印管理器打印
  • 网页: 创建带有 HTML 内容的 iframe并触发打印对话框

HTML 要求 :

  • 应该是一个完整的HTML文档,并有适当的结构
  • 可包含内置 CSS 样式或样式标签
  • 外部资源(图像、样式表)应使用绝对 URL
  • 可用 @ media 打印规则添加特定打印 CSS

CSS 打印样式 : 使用 CSS 媒体查询自定义打印输出 :

  • 控制分页:分页前,分页后,分页后,分页后
  • 隐藏元素: 显示: 无打印类
  • 调整打印字体大小和颜色
参数类型说明
optionsPrintHtmlOptions- HTML 打印的内容和配置

自: 7.0.0 (单位:千美元)


打印Pdf(...)

printPdf(options: PrintPdfOptions) => Promise<void>

呈现打印 UI 打印 PDF 文档.

平台行为 :

  • iOS系统: 使用与 PDF 文件 URL 的 UIPrint 交互控制器
  • 机器人: 使用带有 PdfDocument 的打印管理器
  • 网页: 创建对象 URL并打开打印对话框

文件路径要求 :

  • iOS系统: 必须是文件://路径或相对于 app 文档目录
  • 机器人: 支持内容://URI(从下载,媒体存储)或文件://路径
  • 网页: 必须是可访问的文件路径
参数类型说明
optionsPrintPdfOptions- 用于打印的PDF文件路径和配置

自: 7.0.0 (单位:千美元)


打印Iframe(...)

printIframe(options: PrintIframeOptions) => Promise<void>

显示一个 iframe 元素内的内容的打印 UI .

当完整的 HTML 文档太大而无法通过打印时有用 .

平台行为 :

  • iOS系统: 在 WebView 中评价 JavaScript 打印 Iframe 内容
  • 机器人: 在 WebView 中评价 JavaScript 打印 Iframe 内容
  • 网页: 查找框架并触发其打印对话框
参数类型说明
optionsPrintIframeOptions- CSS 选择器和可选打印作业名称

自: 8.0.19 联合国


打印WebView(...)

printWebView(options?: PrintOptions | undefined) => Promise<void>
参数类型
optionsPrintOptions

获取 PluginVersion ()

getPluginVersion() => Promise<{ version: string; }>

获取本地 Capacitor 插件版本 .

从本地代码(iOS/Android)返回硬编码插件版本或 软件包版本 (Web). 用于调试和确保插件 兼容性.

回返情况: Promise<{ version: string; }>

自: 7.0.0 (单位:千美元)


接口

打印Base64 选项

打印碱基64编码数据的选项.

Prop类型说明自兹
datastring有效的 Base64 编码字符串代表文件内容. base64字符串不应包括数据 URL 前缀(如"data:application/pdf;base64"). 只提供原始基础64编码内容. 业绩考量: - Base64 编码将数据大小增加约33% - 大文件( > 5MB) 解码时可能造成内存问题 - 考虑对大文件使用打印File( ) 平台说明: - 说吧 iOS系统: 解码为NSData, 并传递给 UIPrint Interaction 控制器 - 机器人: 解码为字节数组并写入临时文件 - 网页: 转换为 Blob 打印7.0.0 (单位:千美元)
mimeTypestringBase64编码数据的MIME类型. 支持类型 : - 说吧 application/pdf - PDF文档 - image/jpeg - JPEG 图像 image/png - PNG图像 image/gif - GIF图像(仅iOS/Android) - image/heic -HEIC图像(只有iOS) - image/heif - HEIF图像(只有iOS) 平台支持: - 所有平台支持PDF、JPEG和PNG - GIF支持因平台而异 - HEIC/HEIF是iOS特定格式7.0.0 (单位:千美元)

打印文件选项

从设备存储中打印文件的选项 .

Prop类型说明默认自兹
pathstring要打印的文件路径 . iOS 路径格式 : - 说吧 file:// URL: 完整文件 URL 路径 - 相对路径: 相对于 app 文档目录的路径 - 必须在 app 可访问目录(文档,临时,缓存)内 Android 路径格式 : - 说吧 content:// URI: 内容提供者 URI (推荐给外部文件) - file:// 路径: 直接文件系统路径 - 文件必须有读取权限 常用案例 : - App文档:AP文档目录中保存的文件 - 下载:系统下载文件夹中的文件(使用内容://在Android上) - 临时文件:AP临时/cache目录中的文件 - 共享存储:外部存储中的文件(Android,需要权限)7.0.0 (单位:千美元)
mimeTypestring文件的MIME类型. 平台行为 : - 说吧 机器人: 内容需要QUIRED=URIs. 帮助系统决定如何处理文件。 可选文件://路径( 从扩展名自动检测) 。 - iOS系统:被忽略了. 文件类型是从文件扩展名中自动发现的 。 - 网页: 可选。 未提供自动检测. 常见的 MIME 类型 : - 说吧 application/pdf - PDF文档 - image/jpeg - JPEG 图像 image/png - PNG图像 image/gif - GIF图像Undefined (auto-detected from file extension)7.0.0 (单位:千美元)

打印Html 选项

打印 HTML 内容的选项 .

Prop类型说明自兹
htmlstringHTML 要打印的内容. 内容要求: - 应该是一个完整的 HTML 文档与 &lt;html&gt;, (中文(简体) ), &lt;head&gt;,以及 &lt;body&gt; 标签 - 可包含内置 CSS 样式或 &lt;style&gt; 标签 - 外部资源( 图像, 字体) 应使用绝对 URL - JavaScript 在打印渲染过程中没有执行 打印优化提示 : - 使用( I) @media print 用于打印特定样式的 CSS 规则 - 控制页面间隔 page-break-before, (中文(简体) ), page-break-after, (中文(简体) ), page-break-inside - 使用 .no-print { display: none; } 类 - 调整可读性字体大小(12pt是打印的标准) - 使用方便打印的颜色(避免暗色背景) 平台渲染: - 说吧 iOS系统:打印前在 WKWebView 中渲染 - 机器人: 在打印前在 WebView 中渲染 - 网页: 打印前在隐藏的 Iframe 中渲染 字符编码 : - UTF-8 推荐并默认 - 在 HTML 中包含字符集 : &lt;meta charset="UTF-8"&gt;7.0.0 (单位:千美元)

打印 Pdf 选项

打印 PDF 文档的选项.

Prop类型说明自兹
pathstringPDF 文档路径 . iOS 路径格式 : - 说吧 file:// URL: PDF 文档的完整文件 URL 路径 - 相对路径: 相对于 app 文档目录的路径 - 必须在 app 的可访问目录(文档,临时,缓存)内 - PDF 必须是有效的且不受密码保护 Android 路径格式 : - 说吧 content:// URI: 内容提供者 URI (推荐给外部 PDF) - file:// 路径: 直接文件系统路径到 PDF - 文件必须读取权限 - 支持单页和多页 PDF 网络路径格式 : - 从网络上下文访问相对或绝对路径 - 必须是有效的PDF文件 验证 : - 文件必须在指定的路径上存在 - 文件必须是有效的PDF(由魔法号码/标题检查) - 文件必须可以被应用读取 共同来源: - App文档:被保存在App文档目录中的PDFs - 下载:系统下载的PDFs(使用内容://在Android上) - 生成的PDFs:由App创建的临时PDFs - 网络下载:本地下载并保存的PDFs7.0.0 (单位:千美元)

打印框架选项

打印 Iframe 内容的选项 .

Prop类型说明自兹
selectorstring用于 Iframe 元素打印的 CSS 选择器 。 选择器必须匹配当前文档中的单个 Iframe .8.0.19 联合国

打印选项

所有打印操作的基础选项 .

Prop类型说明默认自兹
namestring打印作业的名称 . 用法 : - 在系统打印队列中显示 - 在打印历史/日志中显示 - 可能在打印机状态显示中显示 - 用作“ 保存为PDF” 选项的默认文件名 平台行为 : - 说吧 iOS系统: 在打印预览页头和活动视图中显示 - 机器人: 在打印任务通知和打印队列中显示 - 网页: 在打印对话框中用作文档标题 最佳做法: - 使用描述性名称(例如"发票#12345","Q4报告") - 保留在50个字符以更好地显示 - 避免在文件名中引起问题的特殊字符 - 包含相关的标识符(顺序号,日期等) 实例: -"发票#12345"-"销售报告-2024Q4"-"客户收据-约翰·多伊"-"出品相片-SKU-ABC123"'Document'7.0.0 (单位:千美元)

Android 配置

保护

如果您使用ProGuard,请在您的 proguard-rules.pro 文件 :

-keep class com.capgo.printer.** { *; }

变量

您可以在您中配置以下工程变量 variables.gradle 文件 :

ext {
  androidxDocumentFileVersion = '1.0.1'
  androidxPrintVersion = '1.0.0'
}

平台支持

平台支助
iOS系统✅
机器人✅
网页✅

页:1

大文件

在打印基础64编码数据时,由于内存限制,大文件可能导致应用崩溃. 对于大型文件,建议先将其保存到设备并使用 printFile() 换句话说.

网络平台

网络平台上:

  • printWebView() 触发浏览器的本地打印对话框
  • 其他方法创建并打印其内容
  • 一些浏览器可能对某些文件类型的打印有安全限制

打印样式

在打印网页内容时, 您可以使用 CSS 媒体查询来自定义打印输出 :

@media print {
  /* Your print styles here */
  body {
    font-size: 12pt;
  }
  .no-print {
    display: none;
  }
}

版本与发布记录

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

版本发布日期距今
8.1.8latest2026/10/1525 天前
8.1.72026/10/1327 天前
8.1.62026/10/091 个月前
8.1.52026/10/081 个月前
8.1.42026/09/161 个月前
8.1.32026/08/292 个月前

其他发布通道:v7 → 7.0.1,lts-v7 → 7.0.14。

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

@capgo/capacitor-printer 是什么?

用于打印文档、 HTML、 PDF 、 图像和网页视图的电容插件

如何安装 @capgo/capacitor-printer?

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

@capgo/capacitor-printer 支持 TypeScript 吗?

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

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

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

@capgo/capacitor-printer 可以商用吗?

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

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

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

@capgo/capacitor-printer 还在维护吗?

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