更新记录

0.4.2(2026-08-23)

  • 使用gpt5.6开发的 三端 调用系统打印能力
  • 新增 exportPdfImages API,将 PDF 逐页导出为本地 PNG,供系统图片分享等场景复用。
  • Android、iOS 和 HarmonyOS 统一返回图片路径列表与页数,保留原有 PDF 打印接口。

平台兼容性

uni-app(5.23)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× × × × × × × × ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × × ×

uni-app x(5.23)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - 8.0 18 6 -

simple-printer

simple-printer 为 uni-app x Vapor 提供文件、图片和 HTML 三类独立系统打印能力,支持 Android、iOS 和 HarmonyOS App。

文件打印

import { printFile } from '@/uni_modules/simple-printer'

printFile({
  filePath: pdfResult.path,
  documentName: '借阅清单',
  mimeType: 'application/pdf',
  success: (result) => {
    console.log('系统已受理打印', result.filePath)
  }
})

Android 的 printFile 可靠支持 PDF,并校验 PDF 文件头;其他格式返回 UNSUPPORTED_FILE_TYPE。iOS 使用系统 canPrint 判定文件是否可打印。HarmonyOS 将文件交给系统打印服务,由系统判定格式支持情况。

图片打印

import { printImage } from '@/uni_modules/simple-printer'

printImage({
  imagePath: imagePath,
  documentName: '活动照片',
  scaleMode: 'fit'
})

scaleMode 支持 fitfill。Android 会将图片真实绘制到 A4 打印文档;iOS 和 HarmonyOS 的最终缩放由系统打印界面决定。

HTML 打印

import { printHtml } from '@/uni_modules/simple-printer'

printHtml({
  html: '<html><body><h1>借阅清单</h1></body></html>',
  documentName: '借阅清单',
  baseUrl: ''
})

Android 使用临时原生 WebView 渲染后交给 PrintManager;iOS 使用 UIMarkupTextPrintFormatter;HarmonyOS 使用临时 ArkUI/ArkWeb 宿主生成 PDF 后调用系统打印,不需要注册额外 uni-app x 页面。iOS 的 baseUrl 不参与资源加载,HTML 应使用内联样式和可直接访问的资源。

PDF 导出图片

import { exportPdfImages } from '@/uni_modules/simple-printer'

exportPdfImages({
  path: pdfPath,
  jobName: '借阅清单',
  success: (result) => {
    uni.shareWithSystem({
      type: 'image',
      imagePaths: result.imagePaths
    })
  }
})

exportPdfImages 会把 PDF 逐页渲染为 PNG 并返回本地临时路径。调用方应立即交给系统分享或消费这些文件,不应长期持有临时路径。

兼容接口

printPdf({ path, jobName }) 保留为兼容入口,内部转到 printFile。隐藏组件 <simple-printer> 暴露 printFileprintImageprintHtmlprintPdf 和旧别名 print

函数同步返回值表示请求已受理或参数校验结果。HarmonyOS 文件/图片及 Android、HarmonyOS HTML 的系统调用是异步的,应以 successfailcomplete 回调作为最终提交结果。success 只表示打印 UI 或打印任务已交给系统,不表示纸张已经物理打印完成。

HarmonyOS 需要 SystemCapability.Print.PrintFramework,插件声明系统自动授予的 ohos.permission.PRINT。设备不支持打印框架或系统拒绝请求时,分别返回 SYSTEM_PRINT_UNAVAILABLESYSTEM_PRINT_FAILED

隐私、权限声明

1. 本插件需要申请的系统权限列表:

Android/iOS 无额外权限;HarmonyOS 使用系统自动授予的 ohos.permission.PRINT

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

不采集、不上传打印内容

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。