pdf

  
Library untuk menambahkan kemampuan melihat PDF di dalam aplikasi.
Update Terbaru Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
25 Februari 2026 - - - 1.0.0-alpha14

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada pdf, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.

Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:

Groovy

dependencies {
    implementation "androidx.pdf:pdf-viewer-fragment:1.0.0-alpha14"
}

Kotlin

dependencies {
    implementation("androidx.pdf:pdf-viewer-fragment:1.0.0-alpha14")
}

Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.

Masukan

Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.

Tidak ada catatan rilis untuk artefak ini.

Versi 1.0

Versi 1.0.0-alpha14

25 Februari 2026

androidx.pdf:pdf-*:1.0.0-alpha14 dirilis. Versi 1.0.0-alpha14 berisi commit ini.

Fitur Baru

  • Interaksi Hardware Eksternal: Dukungan penuh untuk pintasan keyboard dan peristiwa mouse kini tersedia di library PdfViewer .
    • Navigasi & Kontrol Keyboard:
    • Melakukan zoom: Gunakan Ctrl + + atau Ctrl + = untuk memperbesar, Ctrl + - untuk memperkecil, dan Ctrl + 0 untuk menyesuaikan dokumen agar "muat di lebar".
    • Men-scroll: Tombol panah standar (D-pad) memungkinkan pen-scroll ke atas, bawah, kiri, dan kanan, termasuk melompat ke halaman berikutnya atau sebelumnya saat berada di batas.
    • Pilihan: Gunakan Ctrl + C untuk menyalin konten yang saat ini dipilih dengan cepat.
    • Dukungan Mouse yang Lebih Baik:
    • Roda Scroll: Dukungan untuk men-scroll secara vertikal dan horizontal. Gunakan Ctrl + Roda Scroll untuk memperbesar dokumen relatif terhadap posisi kursor mouse.
    • Pemilihan: Klik dan tarik dengan tombol mouse utama untuk memilih teks.
    • Peningkatan Formulir & Widget:
    • Menambahkan opsi Pilihan kustom untuk Kotak Kombinasi.
    • Callback pengeditan widget formulir kini dipicu untuk semua pembaruan teks pengeditan

Perubahan API

  • Mengekspos PdfDocument dari PdfViewerFragment melalui onDocumentLoadSuccess(pdfDocument). (I4b47d, b/481616017)

Perbaikan Bug

  • Hindari penggabungan Bitmap di ImageSelection untuk mencegah RuntimeException saat menyimpan status instance (I07bab).
  • Menonaktifkan fitur anotasi saat penelusuran PDF aktif untuk meningkatkan fokus Ia9866.
  • Memastikan permintaan awal/akhir penyorotan selalu diproses (I9a863).
  • Memfokuskan item palet warna atau penggeser kuas yang dipilih saat dibuka (Ie7a75).
  • Memperbarui callback pengeditan widget formulir agar dipicu untuk semua pembaruan teks pengeditan (Icebe6).
  • Memperbaiki dialog batal yang menghilang setelah perubahan konfigurasi (I71a39).
  • Memperbaiki gambar yang meluas di luar batas halaman (I88bd5).
  • Menghapus pilihan teks saat memasuki mode edit (I26fb9).
  • Memperbaiki widget teks yang tidak diperbarui setelah mengetuk widget lain (I5dffc).

Versi 1.0.0-alpha13

11 Februari 2026

androidx.pdf:pdf-*:1.0.0-alpha13 dirilis. Versi 1.0.0-alpha13 berisi commit ini.

Fitur Baru

  • Memperkenalkan EditablePdfViewerFragment, yang memperluas PdfViewerFragment standar untuk menyediakan kemampuan pengeditan PDF, termasuk anotasi dan pengisian formulir.
  • Anotasi: Memanfaatkan library androidx.ink untuk memberikan dukungan anotasi PDF yang komprehensif. Toolbar khusus, yang dipicu oleh pengeditan FloatingActionButton, memberikan akses ke alat khusus, termasuk:
    • Pena: Memungkinkan penulisan dan gambar dengan tangan bebas langsung pada dokumen. Pengguna dapat menyesuaikan goresan pena dengan ketebalan yang dapat disesuaikan dan palet warna yang luas.
    • Penyorot: Mendukung penyorotan teks dengan format bebas dan yang disesuaikan dengan teks, tersedia dalam berbagai warna.
    • Penghapus: Menghapus anotasi tertentu secara presisi.
    • Urungkan dan Ulangi: Menyediakan kemampuan bawaan untuk mengurungkan atau mengulangi perubahan terbaru dengan lancar.
  • Pengisian Formulir: Dukungan untuk mengklik dan mengubah kolom formulir seperti input teks, drop-down, kotak centang, dan tombol pilihan.
    • EditablePdfViewerFragment mendukung kemampuan pengisian formulir inline yang memberikan pengalaman pengguna yang lancar. Fitur ini dikontrol melalui API isFormFillingEnabled di PdfView.
    • EditablePdfDocument: Antarmuka baru yang memperluas PdfDocument untuk mengelola dan menerapkan pengeditan data formulir.
    • Composable PdfViewer mendukung interaksi dengan kolom formulir, yang dapat dikontrol melalui parameter isFormFillingEnabled.
  • Menyimpan Perubahan: PdfWriteHandle memungkinkan penerapan konten yang diedit ke file tertentu.
  • Pemilihan Gambar: Menambahkan dukungan untuk memilih gambar saat ditekan lama dalam dokumen PDF. Fitur ini diaktifkan melalui properti isImageSelectionEnabled di PdfView dan composable PdfViewer. Data yang dihasilkan ditampilkan melalui model ImageSelection di OnSelectionChangedListener.
  • Tata Letak Dua Halaman: Menambahkan mode tata letak berdampingan untuk perangkat layar besar, yang dapat dikonfigurasi menggunakan properti pagesPerRow di PdfView dan composable PdfViewer.

Perubahan API

  • Memperkenalkan Image Selection API di Jetpack PDF Library (Iee0b9, b/470897750)
  • Membuat API lapisan pemrosesan pengisian Formulir menjadi publik. (Iec39c, b/474260451)
  • Menambahkan parameter renderParams ke openDocument API di SandboxedPdfLoader (If9344, b/438269273)
  • Menambahkan API lapisan presentasi pengisian formulir (I829c5, b/449869703)
  • Menambahkan anotasi @MainThread pada metode callback OnFirstContentLoadListener dan OnSelectionChangedListener (I4cf10, b/466965940)
  • Menandai konstruktor ApplyInProgressException sebagai internal, sehingga mencegah instansiasi eksternal (I5cc66, b/465414484)
  • Menambahkan anotasi @MainThread pada metode callback pemroses di PdfView (Ie7201, b/429407597)
  • Menambahkan API untuk kemampuan pengeditan native melalui EditablePdfViewerFragment. (Ifae6c, b/462049364)
  • Menambahkan FirstContentLoad API ke PdfView dan PdfViewer (Icf63d, b/461666545)
  • [2Page] Menambahkan API Tata Letak Dua Halaman ke Library PdfViewer (I8d7f1, b/452517650)

Perbaikan Bug

  • Perbaikan untuk pengecualian karena Halaman sudah ditutup sebelum mengambil bitmap (b/475255729)

Versi 1.0.0-alpha12

3 Desember 2025

androidx.pdf:pdf-*:1.0.0-alpha12 dirilis. Versi 1.0.0-alpha12 berisi commit ini.

Perubahan API

  • Hapus fungsi textAsString dari TextSelection ke androidx-main
  • Mengganti nama clearSelection menjadi clearCurrentSelection (I3a318, b/429407597)
  • Menghapus fungsi textAsString dari TextSelection (I1305d, b/429407798)

Perbaikan Bug

  • Memperbaiki masalah saat peng-scroll cepat di PdfView tidak terlihat secara default. (I7fb0e)
  • Memperbaiki error di TextSelectionMenuProvider untuk pilihan dengan teks null. (I855df)

Versi 1.0.0-alpha11

22 Oktober 2025

androidx.pdf:pdf-*:1.0.0-alpha11 dirilis. Versi 1.0.0-alpha11 berisi commit ini.

Fitur Baru

  • Mengaktifkan Item Menu Smart pada pilihan konten PDF.
  • Mengaktifkan pemilihan hyperlink dan pemilihan link GoTo di PDF.
  • Mengekspos API menu pilihan fromPdfView dan Composable PdfViewer, yang memungkinkan developer menambahkan item menu pilihan.
  • Menambahkan API perataan halaman di PdfView dan PdfViewer Composable yang memungkinkan developer memilih perataan halaman saat tinggi konten < tinggi area tampilan.

Perubahan API

  • Menjadikan contentDesc nullable dan menghapus nilai default. (I86f8c, b/441973880)
  • Mengekspos PdfSelectionMenuKeys untuk Item Menu Pemilihan Link (Ic9b05, b/447079082)
  • Menambahkan PageAlignment API ke PdfView dan PdfViewer ke androidx-main
  • Mengubah API terkait sudut untuk menggunakan derajat dan menyertakan unit dalam nama, memperjelas unit dalam utilitas konversi Sudut dan mendukung derajat serta radian, mengubah StockBrushes API untuk menggunakan versi kuas stok sebagai parameter fungsi factory dan mengekspos kontrol perilaku tumpang-tindih sendiri untuk kuas penyorot, mengganti nama MutableAffineTransform.populateFromTranslate menjadi populateFromTranslation, menghapus InProgressStrokesView.setRenderFactory/getRenderFactory. (Id9eab, b/436656418)
  • Menambahkan PageAlignment API ke PdfView dan PdfViewer (I9c9a5, b/438065228)
  • Mengekspos API Menu Pilihan dari Composable PdfViewer (Id9b0f, b/407663999)
  • Jadikan PdfView sebagai ViewGroup. Tidak ada dukungan untuk turunan arbitrer. (Ib51d8, b/410008792)
  • Mengekspos HyperLinkSelection dan GoToLinkSelection dari PdfView (I378c4, b/441280002)
  • Memfaktorkan ulang PdfPageContent untuk mendukung pilihan generik (I28f16, b/437845185)
  • Mengekspos Selection Menu API dari PdfView (Idd547, b/407663737)
  • Memindahkan class terkait seleksi ke paket khusus (I953cb, b/436157691)
  • Memperkenalkan onPdfViewCreated eksperimental untuk akses PdfView di PdfViewerFragment. (I86715, b/422620454)
  • Menambahkan FileDescriptor API ke PdfLoader (I60b8d)

Perbaikan Bug

  • Meningkatkan pemodelan input untuk membuat goresan lebih akurat mencerminkan input (I93097)

Kontribusi Eksternal

  • Mengekspos PdfSelectionMenuKeys untuk Item Menu Pemilihan Link
  • Mengekspos Selection Menu API dari Composable PdfViewer
  • Mengekspos Selection Menu API dari PdfView

Versi 1.0.0-alpha10

16 Juli 2025

androidx.pdf:pdf-*:1.0.0-alpha10 dirilis. Versi 1.0.0-alpha10 berisi commit ini.

Fitur Baru

  • Pilihan yang ditingkatkan yang memungkinkan pengguna memilih teks di beberapa halaman dengan menarik tuas pilihan di luar batas halaman.
  • Aplikasi kini dapat mencegat dan menyesuaikan penanganan klik hyperlink dalam dokumen PDF.

Perubahan API

  • Mengekspos Composable untuk menampilkan konten PDF (I8e7ee)
  • Memindahkan PdfPoint dan PdfRect ke paket androidx.pdf.models (I26cf4)
  • Mengekspos komponen View untuk menampilkan konten PDF (I9fe27)
  • Mengekspos API untuk menginisialisasi resource PDF lebih awal dan mengurangi latensi mulai dingin (a18fa89)
  • Mengekspos API untuk mengganti penanganan klik hyperlink pada konten PDF(6330a8b)
  • Mengekspos artefak baru pdf-document-service dan API yang sesuai - PdfLoader, PdfDocument, dan SandboxedPdfLoader. Antarmuka dapat digunakan untuk menerapkan komponen parsing dan pemrosesan dokumen PDF (Ide70d)
  • Mengekspos API untuk menyetel PdfDocument pada PdfView untuk menginisialisasi rendering dokumen (If8738)

Versi 1.0.0-alpha09

7 Mei 2025

androidx.pdf:pdf-*:1.0.0-alpha09 dirilis. Versi 1.0.0-alpha09 berisi commit ini.

Perubahan Utama

  • Codebase telah mengalami refaktorisasi besar dan kini sepenuhnya ditulis di Kotlin, menggunakan Coroutine dan ViewModel. Hal ini mencakup penerapan ulang PdfViewerFragment. Rilis ini tidak menyertakan API atau fitur baru.

Masalah Umum:

  • Penggeser cepat dan indikator halaman tidak memiliki efek bayangan.
  • Dokumen PDF satu halaman mungkin tidak selalu berada di tengah dan diskalakan ke lebar tampilan.

Perubahan API

  • Anotasikan containerStyleResId dengan @StyleRes. (I88d85)

Versi 1.0.0-alpha08

12 Maret 2025

androidx.pdf:pdf-document-service:1.0.0-alpha08, androidx.pdf:pdf-viewer:1.0.0-alpha08, dan androidx.pdf:pdf-viewer-fragment:1.0.0-alpha08 dirilis. Versi 1.0.0-alpha08 berisi commit ini.

Perbaikan Bug

  • Memperbaiki penempatan menu pilihan yang tidak konsisten di berbagai perangkat Android karena perbedaan penskalaan. Penempatan menu pilihan kini konsisten di seluruh perangkat.
  • Menyelaraskan posisi penggeser cepat dan indikator halaman saat pembuatan ulang fragmen dalam skenario seperti perubahan konfigurasi, dll.

Versi 1.0.0-alpha07

26 Februari 2025

androidx.pdf:pdf-document-service:1.0.0-alpha07, androidx.pdf:pdf-viewer:1.0.0-alpha07, dan androidx.pdf:pdf-viewer-fragment:1.0.0-alpha07 dirilis. Versi 1.0.0-alpha07 berisi commit ini.

Fitur Baru

  • PdfViewerFragment kini mendukung StylingOptions (sekumpulan ID resource gaya) yang memungkinkan penataan gaya kustom melalui newInstance atau XML (FragmentContainerView). Subclass dapat menggunakan konstruktor yang dilindungi untuk fungsionalitas serupa.
  • StylingOptions saat ini menerima containerStyle yang menyediakan:
    • Dukungan drawable kustom untuk tuas scroll cepat dan indikator halaman.
    • Atribut marginEnd untuk penempatan yang tepat pada tuas scroll cepat dan indikator halaman.

Perubahan API

  • Menambahkan atribut publik dari PdfView (I30fc5)
  • Menambahkan API baru StylingOptions untuk tampilan PDF. (Id2993)

Perbaikan Bug

  • Memperbaiki perbedaan sinkronisasi antara tuas scroll cepat dan status visibilitas indikator halaman.

Versi 1.0.0-alpha06

29 Januari 2025

androidx.pdf:pdf-document-service:1.0.0-alpha06, androidx.pdf:pdf-viewer:1.0.0-alpha06, dan androidx.pdf:pdf-viewer-fragment:1.0.0-alpha06 dirilis. Versi 1.0.0-alpha06 berisi commit ini.

Perbaikan Bug

  • Perbaikan: Error yang disebabkan oleh IllegalArgumentException saat melepaskan binding layanan yang tidak terdaftar (eb4e85)
  • Perbaikan: Error IllegalArgumentException karena perbedaan mMaxPages dan numPages. (75d763)

Versi 1.0.0-alpha05

11 Desember 2024

androidx.pdf:pdf-document-service:1.0.0-alpha05, androidx.pdf:pdf-viewer:1.0.0-alpha05, dan androidx.pdf:pdf-viewer-fragment:1.0.0-alpha05 dirilis. Versi 1.0.0-alpha05 berisi commit ini.

Perbaikan Bug

  • Library ini kini menggunakan anotasi nullness JSpecify, yang merupakan penggunaan jenis. Developer Kotlin harus menggunakan argumen compiler berikut untuk menerapkan penggunaan yang benar: -Xjspecify-annotations=strict (ini adalah nilai default yang dimulai dengan compiler Kotlin versi 2.1.0). (I38301, b/326456246)
  • Memperbaiki halaman yang sebelumnya dibuka ditampilkan setelah rotasi di Android 13. (Ib03dd)
  • Memperbaiki Toolbox yang menghilang saat Rotasi. (01148f)

Versi 1.0.0-alpha04

13 November 2024

androidx.pdf:pdf-viewer:1.0.0-alpha04 dan androidx.pdf:pdf-viewer-fragment:1.0.0-alpha04 dirilis. Versi 1.0.0-alpha04 berisi commit ini.

Kompatibilitas yang Diperluas

  • Library PDFViewer kini mendukung Android versi S, T, U, dan V. Kompatibilitas yang ditingkatkan ini terkait dengan update ekstensi SDK 13.

Perubahan API

  • Menambahkan batasan minimum SdkExtension ke PdfViewerFragment. (I922af)
  • Mengekspos API baru untuk library PDF Viewer. (I0af57)

Perbaikan Bug

  • Perbaikan error untuk masalah penghentian proses.
  • Perbaikan UI terkait dialog sandi.
  • Perbaikan aksesibilitas untuk findInFileView dan FastscrollView.

Pengembangan Berkelanjutan

  • Kami sedang berupaya mengintegrasikan Jetpack Compose ke dalam library.

Versi 1.0.0-alpha03

18 September 2024

androidx.pdf:pdf-viewer:1.0.0-alpha03 dan androidx.pdf:pdf-viewer-fragment:1.0.0-alpha03 dirilis. Versi 1.0.0-alpha03 berisi commit ini.

Perbaikan Bug

  • Keyboard tidak muncul saat penelusuran dibuka untuk pertama kalinya telah diselesaikan
  • Perbaikan UI terkait font tampilan FindInFile.
  • Perbaikan UI untuk pemilihan teks dan handel penarikan.

Masalah Umum

  • Gambar 3D dalam dokumen PDF tidak dirender di penampil.
  • PdfViewerFragment memiliki beberapa masalah performa pada dokumen PDF yang sangat besar (> 250 MB)

Versi 1.0.0-alpha02

4 September 2024

androidx.pdf:pdf-viewer:1.0.0-alpha02 dan androidx.pdf:pdf-viewer-fragment:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit ini.

Perbaikan Bug

  • Masalah gambar PDF yang buram saat memutar dari potret ke lanskap dan aplikasi menjadi tidak aktif telah diselesaikan.
  • Menu temukan dalam file kini mempertahankan jumlah hasil meskipun konfigurasi berubah.
  • Ikon FloatingActionButton kini tersedia untuk PDF satu halaman.
  • Masalah tumpang-tindih antara kolom Temukan dalam file dan FloatingActionButton telah diperbaiki.
  • Anotasi teks dan sorotan kini dapat dirender di penampil.
  • Peningkatan aksesibilitas telah dilakukan pada kolom Temukan dalam file.
  • Perbaikan UI telah diterapkan untuk rotasi, termasuk mempertahankan jumlah penemuan, mengatasi menu pilihan teks yang menghilang, dan menyelesaikan masalah FAB yang tumpang-tindih.
  • Menu temukan dalam file yang tersembunyi di balik keyboard dalam mode lanskap telah diperbaiki.

Masalah Umum

  • Gambar 3D dalam dokumen PDF tidak dirender di penampil.
  • PdfViewerFragment memiliki beberapa masalah performa pada dokumen PDF yang sangat besar (> 250 MB)

Versi 1.0.0-alpha01

7 Agustus 2024

androidx.pdf:pdf-viewer:1.0.0-alpha01 dan androidx.pdf:pdf-viewer-fragment:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit ini.

Fitur Baru

Rilis alfa awal PDFViewer mencakup implementasi pratinjau awal yang memungkinkan skenario pembacaan PDF inti. Perhatikan bahwa PdfViewerFragment saat ini hanya didukung di versi Android V (SDK 35). Dukungan untuk versi Android yang lebih lama akan ditambahkan dalam rilis mendatang.

  • Memperkenalkan PdfViewerFragment yang dapat digunakan aplikasi Anda untuk merender dokumen PDF. PdfViewerFragment menyederhanakan integrasi penampil PDF di Aktivitas Anda dan memungkinkan pengguna berinteraksi dengan cara berikut:
    • Zoom: Cubit untuk memperbesar dan memperkecil tingkat zoom untuk pengalaman membaca yang nyaman, serta ketuk dua kali untuk memperbesar/memperkecil dengan cepat ke kondisi default.
    • Navigasi: Scroll dalam status default/di-zoom. PdfViewerFragment menyediakan penggeser cepat untuk men-scroll dengan cepat antar-halaman.
    • Tindakan teks: Mengetuk lama teks akan memilihnya, sehingga pengguna dapat menggunakan opsi seperti Salin dan Pilih semua di halaman saat ini.
    • Dokumen yang dilindungi sandi: PdfViewerFragment menyediakan kotak dialog bagi pengguna untuk memasukkan sandi dan membuka dokumen.
    • Hyperlink yang dapat dinavigasi: Pengguna dapat membuka URL Web atau bookmark dengan mengetuk hyperlink dalam PDF.
    • Pintasan ke mode anotasi: Mode edit belum didukung di PdfViewerFragment. Sebagai gantinya, PdfViewerFragment menampilkan FloatingActionButton yang memicu intent android.intent.action.ANNOTATE implisit dengan URI dokumen.

Perubahan API

  • Menambahkan properti PdfViewerFragment.documentUri untuk menetapkan URI file atau konten untuk dokumen dan memulai pemuatan dokumen. PdfViewerFragment menampilkan indikator pemuatan dengan lingkaran berputar saat URI disetel yang menunjukkan pemrosesan dokumen di latar belakang.
  • Menambahkan PdfViewerFragment.isTextSearchActive untuk mengganti visibilitas menu temukan di file. PdfViewerFragment menangani seluruh alur - memungkinkan input, menampilkan jumlah total kecocokan, memungkinkan navigasi di antara hasil, dan keluar dari hasil.
  • Menambahkan callback onDocumentLoadSuccess dan onDocumentLoadError yang dipanggil setelah rendering dokumen berhasil atau setelah error terjadi sebelum rendering.

Masalah Umum

  • Panel temukan di file tumpang-tindih dengan FloatingActionButton dalam beberapa kasus.
  • ikon FloatingActionButton tidak terlihat untuk PDF halaman tunggal.
  • Jumlah hasil tidak dipertahankan saat perubahan konfigurasi di menu temukan dalam file.
  • Terjadi kedipan saat menutup menu temukan dalam file
  • Gambar 3D dalam dokumen PDF tidak dirender di penampil.
  • Fitur aksesibilitas akan diaktifkan dalam rilis berikut.
  • Gambar PDF menjadi buram saat diputar dari potret ke lanskap.
  • Tidak ada dukungan untuk anotasi teks/sorotan.
  • PdfViewerFragment memiliki beberapa masalah performa pada dokumen PDF yang sangat besar (> 250 MB)

Catatan

  • Perbarui compileSdk ke 35 5dc41be