PDF:在 Compose 中展示 PDF · AndroidX 源码指南
AAndroidX 源码指南
文件与分享
文件与分享 · androidx.documentfile

PDF:在 Compose 中展示 PDFDocumentFile 1.1.0-rc01

PdfDocument 加载与 PdfViewer 的用法,以及 PDF 模块的边界。

最后更新 2026-08-01

复制即用

import androidx.pdf.PdfDocument
import androidx.pdf.compose.PdfViewer
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect

@Composable
fun PdfScreen(parcelFileDescriptor: ParcelFileDescriptor) {
    val pdfDocument = remember(parcelFileDescriptor) {
        PdfDocument.load(parcelFileDescriptor)
    }

    DisposableEffect(Unit) {
        onDispose { pdfDocument.close() }
    }

    PdfViewer(pdfDocument = pdfDocument)
}

常见陷阱

  • 忘 closePdfDocument 持文件描述符,用完必须 close(DisposableEffect onDispose)。
  • 忘加载失败处理PdfDocument.load 可能抛 IOException(文件损坏/权限)。
  • PdfViewer 状态:记住页面位置需要自行持久化,PdfViewer 不负责。

要点

  • PdfDocument.load()ParcelFileDescriptor 加载 PDF 文档。
  • PdfViewer 是 Compose 入口,负责渲染页面与交互。
  • 文档用完后必须 close(),避免文件描述符泄漏。
  • PDF 模块是较新库(1.0.0-alpha19),API 以当前源码为准。
  • 该库展示 PDF 内容,不负责生成 PDF 文档。

相关页面