跳转至正文
@capgo/capacitor-printer 文件与存储 开源

打印机 Capacitor 插件

Capacitor 插件,用于打印文档、HTML、PDF、图片和 WebView

安装

bun add @capgo/capacitor-printer bunx cap sync
npm、pnpm 或 yarn
  • npm install @capgo/capacitor-printer
  • pnpm add @capgo/capacitor-printer
  • yarn add @capgo/capacitor-printer

指南

如何在 Capacitor 中使用 Printer

在设备上测试

下载 Capgo App,然后扫描二维码 code。

打印插件预览二维码 code

使用 @capgo/capacitor-printer

使用 Capacitor 插件打印文档、HTML、PDF、图片及 Web View。

安装

bun add @capgo/capacitor-printer
bunx cap sync

插件暴露的内容

  • printBase64 - 调用打印界面以打印 base64 编码的字符串。
  • printFile - 调用打印界面以打印设备本地文件。
  • printHtml - 调用打印界面以打印 HTML 文档。
  • printPdf - 提供用于打印 PDF 文档的打印界面。

用法示例

printBase64

展示用于打印 base64 编码文件的打印 UI。

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

// Print a base64 encoded PDF
await Printer.printBase64({
  name: 'Invoice #12345',
  data: 'base64-encoded-pdf-data',
  mimeType: 'application/pdf',
});

// Print a base64 encoded image
await Printer.printBase64({
  name: 'Product Photo',
  data: '/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDA...',
  mimeType: 'image/jpeg',
});

printFile

提供用于打印设备文件的打印界面。

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

// iOS: Print from app documents directory
await Printer.printFile({
  name: 'Contract',
  path: 'file:///var/mobile/Containers/Data/Application/.../Documents/contract.pdf',
});

// Android: Print from content URI
await Printer.printFile({
  name: 'Receipt',
  path: 'content://com.android.providers.downloads.documents/document/123',
  mimeType: 'application/pdf',
});

// Android: Print from file path
await Printer.printFile({
  name: 'Photo',
  path: 'file:///storage/emulated/0/Download/photo.jpg',
  mimeType: 'image/jpeg',
});

printHtml

提供用于打印 HTML 文档的打印界面。

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

// Simple HTML document
await Printer.printHtml({
name: 'Sales Report',
html: '<html><body><h1>Q4 Sales Report</h1><p>Revenue: $125,000</p></body></html>',
});

// HTML with print-specific CSS
await Printer.printHtml({
name: 'Styled Invoice',
html: `
<html>
<head>
<style>

printPdf

提供用于打印 PDF 文档的打印界面。

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

// Print PDF from app storage
await Printer.printPdf({
  name: 'Annual Report 2024',
  path: 'file:///var/mobile/Containers/Data/Application/.../Documents/report.pdf',
});

// Print PDF from Android downloads
await Printer.printPdf({
  name: 'Downloaded Document',
  path: 'content://com.android.providers.downloads.documents/document/123',
});

完整参考

继续学习 使用 @capgo/capacitor-printer

如果你正在使用 使用 @capgo/capacitor-printer 要规划原生插件工作,请将其与 @capgo/capacitor-printer 有关 @capgo/capacitor-printer 的实现细节, 快速入门 有关“入门指南”中的实现细节, Capgo 插件目录 查看 Capgo 插件目录中的产品工作流, Capgo 提供的 Capacitor 插件 有关 Capgo 开发的 Capacitor 插件的实现细节,以及 添加或更新插件 有关“添加或更新插件”的实现细节。

常见问题

Printer 插件常见问题

如何在 Capacitor 应用中安装 Printer 插件?

运行 &quot;bun add @capgo/capacitor-printer&quot; (或 &quot;npm install @capgo/capacitor-printer&quot;),然后运行 &quot;bunx cap sync&quot;,使 iOS 和 Android 项目同步 native code。最后在你的应用 code 中从 &quot;@capgo/capacitor-printer&quot; 导入即可。

@capgo/capacitor-printer 是否支持 React、Vue 和 Angular?

支持。Printer 是一个 Capacitor package,因此它适用于任何在 Capacitor 中运行的 Web 框架,包括 Ionic、React、Vue、Angular、Svelte 以及原生 JavaScript。

@capgo/capacitor-printer 支持哪个版本的 Capacitor?

Capgo 插件遵循 Capacitor 的主版本号:请使用与 Capacitor 主版本号一致的插件主版本(例如插件 v8 对应 Capacitor 8)。GitHub README 中的兼容性表列出了仍在维护的版本。

@capgo/capacitor-printer 是免费开源的吗?

是的。code 的源码已在 GitHub 公开,地址为 https://github.com/Cap-go/capacitor-printer/,并且你可以直接从 npm 免费安装。欢迎提交 Bug 反馈和 Pull Request。

我可以在不经过 App Store 审核的情况下,更新使用了 Printer 的 code 吗?

安装或升级插件会改动原生 code,因此需要重新做一次商店构建。之后,调用该插件的 JavaScript、HTML 和 CSS 改动就能通过 Capgo live updates 立即发布。

无需等待 App Store 审核,即可即时发布打印功能更新

只要插件已包含在你的商店版本中,Capgo live updates 就能在几分钟内把 JavaScript、HTML 和 CSS 的改动推送给用户。

开始使用 Capgo