Skip to content

x-pdf-u PDF预览

PDF 预览组件。分页渲染、页码事件、跳页和系统打印。

兼容性

HarmonyIOSAndroidWEB小程序
支持支持支持支持不支持

调用

vue
<x-pdf-u ref="pdf" :url="url" style="width:100%;height:450px;" @onInit="onPdfInit" @pageChange="onPageChange"></x-pdf-u>
ts
uni.downloadFile({
  url: "https://example.com/a.pdf",
  success: (evt) => {
    url.value = evt.tempFilePath
  }
})

function onPdfInit(event : Map<string, number>) : void {
  console.log(event)
}

pdf.value?.jumpTo(2)
pdf.value?.print()

App 端远程 http/https/ftp 会先下载再渲染。本地支持绝对路径、file:///、鸿蒙文档库授权 URI(file://docs/...)、Android content://、iOS unifile://;中文文件名的百分号编码会解开。

参数

字段说明默认
urlPDF 地址""

事件

名称参数说明
onInit{ page, pageCount }PDF 加载完成,page 从 0 开始
pageChange{ page, pageCount }当前页变化
error{ errMsg }文件不存在、下载失败或解析失败

方法

名称需要说明
renderurl: string手动加载并渲染 PDF
getCurrent返回当前页,从 0 开始
getPageCount返回总页数
jumpTopage: number跳到指定页
print打开系统打印

平台差异

  1. 无微信实现。
  2. Web 跨域 PDF 需要 CORS;print() 可能被浏览器拦截弹窗。
  3. Android 含本地 AAR,需自定义基座。预览在 scroll-view 内会拦住触摸,翻页/缩放不穿透到页面。
  4. 鸿蒙使用系统 PDFKit 预览,打印需要 ohos.permission.PRINT

版本

版权归https://xui.tmui.design你不得修改及二次开发,仅供TMUI4会员商用使用。不得转给非VIP会员使用,一经查实数倍赔偿,并追究法律责任。

更新日志

1.0.9(2026-09-09)

  • 安卓已是沙箱绝对路径、file:// 不再先 convert2AbsFullPath,避免合成后的 cache PDF 打不开。

1.0.8(2026-09-08)

  • 全端补 error 事件({ errMsg }):文件不存在、路径无效、解析失败、远程下载失败都会回调,不再只打日志。

1.0.7(2026-09-08)

  • 全端规范化本地文档路径:鸿蒙 file://docs/... 授权 URI 先落沙箱再打开(不再剥成 docs/storage/...);Android 处理 file:// / content:// / unifile://;iOS 对齐 mime-s 解析 file://unifile://;Web 解开 file:// 百分号路径。

1.0.6(2026-08-18)

  • Android 预览在 scroll-view 内禁止父级拦截触摸,翻页/缩放只留在 PDF 内,不再穿透到页面。

1.0.5(2026-08-18)

  • Android/iOS 的 onInit 改为 keepAlive setter 注册,不再放进构造参数对象,避免回调释放后无法再次执行。

1.0.4(2026-08-15)

  • 新增 HarmonyOS 预览、跳页、页码事件与系统打印,与 Android/iOS/Web API 对齐。

1.0.0(2026-07-31)

  • 破坏式更新以支持蒸汽模式

1.0.3(2025-10-09)

  • 修复新的sdk兼容问题,安卓依赖版本切换,以兼容4.76 sdk的版本打包匹配。

1.0.2(2024-09-18)

  • 修复本地路径可能的错误.

1.0.1(2024-09-18)

  • 修复本地路径可能的错误.

1.0.0(2024-09-14)

发布第一版本,双端支持打印pdf文件及预览操作pdf文件,嵌入视频预览pdf,方便定义界面。

最近更新