pdf

  
アプリ内で PDF を表示する機能を追加するためのライブラリ。
最新の更新 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
2026 年 2 月 11 日 - - - 1.0.0-alpha13

依存関係の宣言

pdf への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。

アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。

Groovy

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

Kotlin

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

依存関係について詳しくは、ビルド依存関係の追加をご覧ください。

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

このアーティファクトのリリースノートはありません。

バージョン 1.0

バージョン 1.0.0-alpha13

2026 年 2 月 11 日

androidx.pdf:pdf-*:1.0.0-alpha13 がリリースされました。バージョン 1.0.0-alpha13 に含まれる commit については、こちらをご覧ください。

新機能

  • 標準の PdfViewerFragment を拡張して、注釈やフォーム入力などの PDF 編集機能を提供する EditablePdfViewerFragment を導入しました。
  • アノテーション: androidx.ink ライブラリを活用して、PDF アノテーションの包括的なサポートを提供します。編集 FloatingActionButton によってトリガーされる専用のツールバーから、次のような専用ツールにアクセスできます。
    • ペン: ドキュメントに直接フリーハンドで書き込みや描画を行うことができます。ペンのストロークの太さを調整したり、幅広いカラーパレットから色を選択したりして、カスタマイズできます。
    • ハイライト表示: 自由形式とテキスト スナップの両方のハイライト表示をサポートし、複数の色で利用できます。
    • 消しゴム: 特定のメモを正確に削除します。
    • 元に戻す / やり直す: 直前の変更をシームレスに元に戻したりやり直したりするための組み込み機能を提供します。
  • フォームの入力: テキスト入力、プルダウン、チェックボックス、ラジオボタンなどのフォーム フィールドをクリックして変更する機能。
    • EditablePdfViewerFragment はインラインのフォーム入力機能をサポートしており、シームレスなユーザー エクスペリエンスを提供します。この機能は、PdfViewisFormFillingEnabled API で制御されます。
    • EditablePdfDocument: フォームデータの編集を管理、適用するための PdfDocument を拡張する新しいインターフェース。
    • コンポーザブル PdfViewer は、isFormFillingEnabled パラメータで制御可能なフォーム フィールドとのインタラクションをサポートしています。
  • 変更の保存: PdfWriteHandle を使用すると、編集したコンテンツを指定したファイルにコミットできます。
  • 画像選択: PDF ドキュメント内で長押しして画像を選択する機能を追加しました。この機能は、PdfViewPdfViewer コンポーザブルの両方の isImageSelectionEnabled プロパティで有効になります。結果のデータは、OnSelectionChangedListenerImageSelection モデルを介して公開されます。
  • 2 ページ レイアウト: 大画面デバイス用の並列レイアウト モードを追加しました。このモードは、PdfViewpagesPerRow プロパティと PdfViewer コンポーザブルを使用して構成できます。

API の変更

  • Jetpack PDF ライブラリに画像選択 API を導入(Iee0b9b/470897750
  • フォーム入力処理レイヤ API を公開します。(Iec39cb/474260451
  • SandboxedPdfLoaderopenDocument API に renderParams パラメータを追加(If9344b/438269273
  • フォーム入力のプレゼンテーション レイヤ API を追加(I829c5b/449869703
  • OnFirstContentLoadListenerOnSelectionChangedListener のコールバック メソッドに @MainThread アノテーションを追加しました(I4cf10b/466965940
  • ApplyInProgressException コンストラクタを内部としてマークし、外部インスタンス化を防止しました(I5cc66b/465414484
  • PdfView のリスナーのコールバック メソッドに @MainThread アノテーションを追加しました(Ie7201b/429407597
  • EditablePdfViewerFragment を介したネイティブ編集機能の API を追加(Ifae6cb/462049364
  • PdfViewPdfViewerFirstContentLoad API を追加しました(Icf63db/461666545
  • [2 ページ] 2 ページ レイアウト API を PdfViewer ライブラリに追加(I8d7f1b/452517650

バグの修正

  • ビットマップを取得する前にページがすでに閉じられていることによる例外を修正しました(b/475255729

バージョン 1.0.0-alpha12

2025 年 12 月 3 日

androidx.pdf:pdf-*:1.0.0-alpha12 がリリースされました。バージョン 1.0.0-alpha12 に含まれる commit については、こちらをご覧ください。

API の変更

  • TextSelection から androidx-main に textAsString 関数を削除
  • clearSelection の名前を clearCurrentSelection に変更(I3a318b/429407597
  • TextSelection から textAsString 関数を削除しました(I1305db/429407798

バグの修正

  • PdfView の高速スクローラーがデフォルトで表示されない問題を修正しました。(I7fb0e
  • テキストが null の選択で TextSelectionMenuProvider がクラッシュする問題を修正。(I855df

バージョン 1.0.0-alpha11

2025 年 10 月 22 日

androidx.pdf:pdf-*:1.0.0-alpha11 がリリースされました。バージョン 1.0.0-alpha11 に含まれる commit については、こちらをご覧ください。

新機能

  • PDF コンテンツの選択でスマート メニュー アイテムを有効にする。
  • PDF でハイパーリンクの選択とリンクへの移動の選択を有効にしました。
  • 選択メニューの API fromPdfViewPdfViewer コンポーザブルを公開。これにより、デベロッパーは選択メニュー項目を追加できます。
  • PdfView と PdfViewer コンポーザブルにページ配置 API を追加しました。これにより、コンテンツの高さがビューポートの高さより小さい場合に、デベロッパーがページ配置を選択できるようになります。

API の変更

  • contentDesc を null 可能にし、デフォルト値を削除しました。(I86f8cb/441973880
  • リンク選択メニュー アイテムの PdfSelectionMenuKeys を公開(Ic9b05b/447079082
  • PageAlignment API を PdfView に追加し、PdfViewer を androidx-main に追加
  • 角度関連の API を度数を使用するように変更し、名前に単位を含め、角度変換ユーティリティの単位を明確にし、度数とラジアンの両方をサポートし、StockBrushes API をファクトリ関数パラメータとしてストック ブラシ バージョンを受け取るように変更し、ハイライト ブラシの自己オーバーラップ動作制御を公開し、MutableAffineTransform.populateFromTranslatepopulateFromTranslation に変更し、InProgressStrokesView.setRenderFactory/getRenderFactory を削除。(Id9eabb/436656418
  • PageAlignment API を PdfViewPdfViewer に追加(I9c9a5b/438065228
  • PdfViewer Composable から Selection Menu API を公開(Id9b0fb/407663999
  • PdfViewViewGroup にします。任意の子要素はサポートされていません。(Ib51d8b/410008792
  • PdfView から HyperLinkSelectionGoToLinkSelection を公開(I378c4b/441280002
  • 汎用選択をサポートするよう PdfPageContent をリファクタリング(I28f16b/437845185
  • PdfView から選択メニュー API を公開(Idd547b/407663737
  • 選択関連のクラスを専用のパッケージに移動(I953cbb/436157691
  • PdfViewerFragment で PdfView アクセス用の試験運用版 onPdfViewCreated を導入します。(I86715b/422620454
  • FileDescriptor API を PdfLoader に追加(I60b8d

バグの修正

  • 入力モデリングを改善し、ストロークがより正確に入力を反映するようにした(I93097

外部からの協力

  • リンク選択メニュー項目の PdfSelectionMenuKeys を公開
  • PdfViewer コンポーザブルから選択メニュー API を公開
  • PdfView から Selection Menu API を公開

バージョン 1.0.0-alpha10

2025 年 7 月 16 日

androidx.pdf:pdf-*:1.0.0-alpha10 がリリースされました。バージョン 1.0.0-alpha10 に含まれる commit については、こちらをご覧ください。

新機能

  • 選択範囲を拡張し、ページ境界を越えて選択ハンドルをドラッグすることで、複数のページにわたってテキストを選択できるようにしました。
  • アプリケーションで、PDF ドキュメント内のハイパーリンクのクリック処理をインターセプトしてカスタマイズできるようになりました。

API の変更

  • PDF コンテンツを表示するための Composable を公開(I8e7ee
  • PdfPointPdfRectandroidx.pdf.models パッケージに移動(I26cf4
  • PDF コンテンツを表示するための View コンポーネントを公開(I9fe27
  • PDF リソースを事前に初期化してコールド スタートのレイテンシを短縮する API を公開(a18fa89
  • PDF コンテンツのハイパーリンク クリック処理をオーバーライドする API を公開(6330a8b
  • 新しいアーティファクト pdf-document-service と対応する API(PdfLoaderPdfDocumentSandboxedPdfLoader)を公開します。このインターフェースは、PDF ドキュメントの解析と処理のコンポーネント(Ide70d)の実装に使用できます。
  • PdfViewPdfDocument を設定してドキュメントのレンダリングを初期化する API を公開(If8738

バージョン 1.0.0-alpha09

2025 年 5 月 7 日

androidx.pdf:pdf-*:1.0.0-alpha09 がリリースされました。バージョン 1.0.0-alpha09 に含まれる commit については、こちらをご覧ください。

主な変更点

  • コードベースは大幅なリファクタリングが行われ、コルーチンと ViewModel を利用して完全に Kotlin で記述されるようになりました。これには、PdfViewerFragment の再実装が含まれます。このリリースには、新しい API や機能は含まれていません。

既知の問題:

  • 高速スクロールとページ インジケーターにシャドウ効果がありません。
  • 1 ページの PDF ドキュメントが、ビューの幅に合わせて中央に配置され、拡大縮小されないことがあります。

API の変更

  • containerStyleResId@StyleRes アノテーションを付けます。(I88d85

バージョン 1.0.0-alpha08

2025 年 3 月 12 日

androidx.pdf:pdf-document-service:1.0.0-alpha08androidx.pdf:pdf-viewer:1.0.0-alpha08androidx.pdf:pdf-viewer-fragment:1.0.0-alpha08 がリリースされました。バージョン 1.0.0-alpha08 に含まれる commit については、こちらをご覧ください。

バグの修正

  • スケーリングの違いにより、Android デバイス間で選択メニューの配置が一致しない問題を解決しました。選択メニューの配置がデバイス間で統一されました。
  • 構成の変更などのシナリオで、フラグメントの再作成時に高速スクローラーとページ インジケーターの位置を調整

バージョン 1.0.0-alpha07

2025 年 2 月 26 日

androidx.pdf:pdf-document-service:1.0.0-alpha07androidx.pdf:pdf-viewer:1.0.0-alpha07androidx.pdf:pdf-viewer-fragment:1.0.0-alpha07 がリリースされました。バージョン 1.0.0-alpha07 に含まれる commit については、こちらをご覧ください。

新機能

  • PdfViewerFragmentStylingOptions(スタイル リソース ID のセット)をサポートするようになり、newInstance または XML(FragmentContainerView)によるカスタム スタイル設定が可能になりました。サブクラスは、同様の機能に保護されたコンストラクタを利用できます。
  • StylingOptions は現在 containerStyle を受け取ります。containerStyle は次のものを提供します。
    • 高速スクロール ハンドルとページ インジケーターのカスタム ドローアブルのサポート。
    • 高速スクロール ハンドルとページ インジケーターを正確に配置するための marginEnd 属性。

API の変更

  • PdfView から公開属性を追加しました(I30fc5
  • PDF ビュー用の新しい API StylingOptions を追加しました。(Id2993

バグの修正

  • 高速スクロール ハンドルとページ インジケーターの表示状態の同期の不一致を修正しました。

バージョン 1.0.0-alpha06

2025 年 1 月 29 日

androidx.pdf:pdf-document-service:1.0.0-alpha06androidx.pdf:pdf-viewer:1.0.0-alpha06androidx.pdf:pdf-viewer-fragment:1.0.0-alpha06 がリリースされました。バージョン 1.0.0-alpha06 に含まれる commit については、こちらをご覧ください。

バグの修正

  • 修正: 登録されていないサービスをバインド解除するときに IllegalArgumentException が原因でクラッシュする(eb4e85
  • 修正: mMaxPagesnumPages の違いにより IllegalArgumentException がクラッシュする。(75d763

バージョン 1.0.0-alpha05

2024 年 12 月 11 日

androidx.pdf:pdf-document-service:1.0.0-alpha05androidx.pdf:pdf-viewer:1.0.0-alpha05androidx.pdf:pdf-viewer-fragment:1.0.0-alpha05 がリリースされました。バージョン 1.0.0-alpha05 に含まれる commit については、こちらをご覧ください。

バグの修正

  • このライブラリは、型使用である JSpecify nullness アノテーションを使用するようになりました。Kotlin を使用している場合、次のコンパイラ引数を使用して正しい使用法を適用する必要があります。-Xjspecify-annotations=strict(Kotlin コンパイラのバージョン 2.1.0 以降ではデフォルトです)。(I38301b/326456246
  • Android 13 で、回転後に以前に開いたページが表示される問題を修正しました。(Ib03dd
  • 回転時にツールボックスが消える問題を修正しました。(01148f

バージョン 1.0.0-alpha04

2024 年 11 月 13 日

androidx.pdf:pdf-viewer:1.0.0-alpha04androidx.pdf:pdf-viewer-fragment:1.0.0-alpha04 がリリースされました。バージョン 1.0.0-alpha04 に含まれる commit については、こちらをご覧ください。

対応範囲の拡大

  • PDFViewer ライブラリで Android バージョン S、T、U、V がサポートされるようになりました。この互換性の強化は、SDK 拡張機能 13 のアップデートに関連しています。

API の変更

  • PdfViewerFragment に最小 SdkExtension 制約を追加しました。(I922af
  • PDF Viewer ライブラリ用の新しい API を公開。(I0af57

バグの修正

  • プロセスの終了に関する問題のクラッシュを修正しました。
  • パスワード ダイアログに関連する UI の修正。
  • findInFileViewFastscrollView のユーザー補助機能を修正しました。

継続的な開発

  • 現在、Jetpack Compose をライブラリに組み込む作業を積極的に進めています。

バージョン 1.0.0-alpha03

2024 年 9 月 18 日

androidx.pdf:pdf-viewer:1.0.0-alpha03androidx.pdf:pdf-viewer-fragment:1.0.0-alpha03 がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください。

バグの修正

  • 検索を初めて開いたときにキーボードが表示されない問題を解決
  • FindInFile ビューのフォントに関する UI の修正。
  • テキスト選択とドラッグ ハンドルの UI を修正しました。

既知の問題

  • PDF ドキュメント内の 3D 画像はビューアでレンダリングされません。
  • PdfViewerFragment は、非常に大きな PDF ドキュメント(250 MB 超)でパフォーマンスの問題が発生することがあります

バージョン 1.0.0-alpha02

2024 年 9 月 4 日

androidx.pdf:pdf-viewer:1.0.0-alpha02androidx.pdf:pdf-viewer-fragment:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください。

バグの修正

  • 縦向きから横向きに回転したときに PDF 画像がぼやける問題と、アプリがスリープ状態になる問題を解決しました。
  • ファイル内検索メニューで、構成が変更されても結果数が維持されるようになりました。
  • 単一ページの PDF で FloatingActionButton アイコンを使用できるようになりました。
  • [ファイル内検索] バーと FloatingActionButton の重複に関する問題を修正しました。
  • テキストとハイライトのアノテーションがビューアでレンダリングされるようになりました。
  • ファイル内検索バーのユーザー補助機能を改善しました。
  • 回転に関する UI の修正が実装されました。これには、検索数の保持、テキスト選択メニューの消失への対処、FAB の重複問題の解決が含まれます。
  • 横向きモードでキーボードの背後に隠れていたファイル内検索メニューが修正されました。

既知の問題

  • PDF ドキュメント内の 3D 画像はビューアでレンダリングされません。
  • PdfViewerFragment は、非常に大きな PDF ドキュメント(250 MB 超)でパフォーマンスの問題が発生することがあります

バージョン 1.0.0-alpha01

2024 年 8 月 7 日

androidx.pdf:pdf-viewer:1.0.0-alpha01androidx.pdf:pdf-viewer-fragment:1.0.0-alpha01 がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください。

新機能

PDFViewer の最初のアルファ版リリースには、PDF の読み取りのコア シナリオを可能にする初期プレビュー実装が含まれています。なお、PdfViewerFragment は現在 Android V(SDK 35)バージョンでのみサポートされています。古い Android バージョンのサポートは、今後のリリースで追加される予定です。

  • アプリが PDF ドキュメントのレンダリングに使用できる PdfViewerFragment を導入しました。PdfViewerFragment は、アクティビティでの PDF ビューアの統合を簡素化し、ユーザーが次の方法で操作できるようにします。
    • ズーム: ピンチイン / ピンチアウトでズームレベルを調整して快適に読書できます。また、ダブルタップでデフォルトの状態にすばやくズームイン / ズームアウトできます。
    • ナビゲーション: デフォルト状態またはズーム状態でのスクロール。PdfViewerFragment は、ページ間をすばやくスクロールするためのクイック スクラバーを提供します。
    • テキスト アクション: テキストを長押しすると、そのテキストが選択され、現在のページで [コピー] や [すべて選択] などのオプションを使用できるようになります。
    • パスワードで保護されたドキュメント: PdfViewerFragment は、ユーザーがパスワードを入力してドキュメントを開くためのダイアログ ボックスを提供します。
    • 移動可能なハイパーリンク: PDF 内のハイパーリンクをタップして、ウェブ URL やブックマークに移動できます。
    • アノテーション モードへのショートカット: 編集モードは PdfViewerFragment ではまだサポートされていません。代わりに、PdfViewerFragment はドキュメント URI を含む暗黙的な android.intent.action.ANNOTATE インテントを起動する FloatingActionButton を表示します。

API の変更

  • ドキュメントのファイルまたはコンテンツ URI を設定し、ドキュメントの読み込みを開始する PdfViewerFragment.documentUri プロパティを追加しました。URI が設定されると、PdfViewerFragment は読み込みスピナーを表示して、ドキュメントのバックグラウンド処理を示します。
  • PdfViewerFragment.isTextSearchActive を追加して、ファイル内検索メニューの表示 / 非表示を切り替えられるようにしました。PdfViewerFragment はフロー全体を処理します。入力、一致した合計数の表示、結果間の移動、終了が可能です。
  • ドキュメントのレンダリングが成功した後、またはレンダリング前にエラーがスローされた後に呼び出される onDocumentLoadSuccess コールバックと onDocumentLoadError コールバックを追加しました。

既知の問題

  • ファイル内検索バーが FloatingActionButton と重なることがある。
  • 1 ページの PDF で FloatingActionButton アイコンが表示されない。
  • ファイル内検索メニューで構成を変更すると、結果の数が保持されない。
  • [ファイル内検索] メニューを閉じるときにちらつきが発生する
  • PDF ドキュメント内の 3D 画像はビューアでレンダリングされません。
  • ユーザー補助機能は、次のリリースで有効になります。
  • 縦向きから横向きに回転すると、PDF 画像がぼやける。
  • テキスト/ハイライト アノテーションはサポートされていません。
  • PdfViewerFragment は、非常に大きな PDF ドキュメント(250 MB 超)でパフォーマンスの問題が発生することがあります

  • compileSdk を 35 5dc41be に更新