pdf

  
Bibliothèque permettant d'ajouter des fonctionnalités de lecture de PDF dans les applications.
Dernière mise à jour Version stable Version finale Version bêta Version alpha
25 février 2026 - - - 1.0.0-alpha14

Déclarer des dépendances

Pour ajouter une dépendance sur pdf, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.

Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle de votre application ou de votre module :

Groovy

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

Kotlin

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

Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.

Commentaires

Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.

Signaler un nouveau problème

Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.

Aucune note de version pour cet artefact.

Version 1.0

Version 1.0.0-alpha14

25 février 2026

Publication d'androidx.pdf:pdf-*:1.0.0-alpha14. Liste des commits de la version 1.0.0-alpha14

Nouvelles fonctionnalités

  • Interaction avec le matériel externe : la bibliothèque PdfViewer est désormais entièrement compatible avec les raccourcis clavier et les événements de souris .
    • Navigation et commandes au clavier :
    • Zoom : utilisez Ctrl++ ou Ctrl+ = pour faire un zoom avant, Ctrl+- pour faire un zoom arrière et Ctrl+0 pour ajuster le document à la largeur.
    • Défilement : les touches fléchées standard (pavé directionnel) permettent de faire défiler l'écran vers le haut, le bas, la gauche et la droite, y compris de passer à la page suivante ou précédente lorsque vous êtes en haut ou en bas de la page.
    • Sélection : utilisez Ctrl+C pour copier rapidement le contenu actuellement sélectionné.
    • Prise en charge améliorée de la souris :
    • Molette : prise en charge du défilement vertical et horizontal. Utilisez Ctrl+Molette de la souris pour zoomer sur le document par rapport à la position du curseur de la souris.
    • Sélection : cliquez et faites glisser le bouton principal de la souris pour sélectionner du texte.
    • Améliorations apportées aux formulaires et aux widgets :
    • Ajout d'une option de choix personnalisé pour les zones de liste déroulante.
    • Le rappel de modification du widget de formulaire se déclenche désormais pour toutes les modifications de texte

Modifications apportées à l'API

  • Exposer PdfDocument de PdfViewerFragment via onDocumentLoadSuccess(pdfDocument). (I4b47d, b/481616017)

Correction de bugs

  • Évitez de regrouper Bitmap dans ImageSelection pour éviter RuntimeException lors de l'enregistrement de l'état de l'instance (I07bab).
  • Désactivez les fonctionnalités d'annotation lorsque la recherche de PDF est active pour améliorer la concentration Ia9866.
  • Les demandes de début et de fin de mise en surbrillance sont désormais toujours traitées (I9a863).
  • Sélectionne l'élément de palette de couleurs ou le curseur de pinceau sélectionné lorsqu'il est ouvert (Ie7a75).
  • Mise à jour du rappel de modification du widget de formulaire pour qu'il se déclenche pour toutes les modifications de texte (Icebe6).
  • Correction de la disparition de la boîte de dialogue de suppression après des modifications de configuration (I71a39).
  • Correction du dessin qui s'étend au-delà des limites de la page (I88bd5).
  • Efface la sélection de texte lors du passage en mode édition (I26fb9).
  • Correction du widget de texte qui ne se met pas à jour après avoir appuyé sur un autre widget (I5dffc).

Version 1.0.0-alpha13

11 février 2026

Publication d'androidx.pdf:pdf-*:1.0.0-alpha13. Liste des commits de la version 1.0.0-alpha13

Nouvelles fonctionnalités

  • Introduction de EditablePdfViewerFragment, qui étend la norme PdfViewerFragment pour fournir des fonctionnalités d'édition de PDF, y compris les annotations et le remplissage de formulaires.
  • Annotations : exploite la bibliothèque androidx.ink pour offrir une compatibilité complète avec les annotations PDF. Une barre d'outils dédiée, déclenchée par l'icône de modification FloatingActionButton, donne accès à des outils spécialisés, y compris :
    • Stylo : permet d'écrire et de dessiner à main levée directement sur le document. Les utilisateurs peuvent personnaliser le trait du stylet en ajustant son épaisseur et en choisissant parmi une large palette de couleurs.
    • Surligneur : permet de surligner du texte à main levée ou en sélectionnant le texte, et est disponible en plusieurs couleurs.
    • Gomme : supprime précisément des annotations spécifiques.
    • Annuler et Rétablir : offre des fonctionnalités intégrées permettant d'annuler ou de rétablir facilement les modifications les plus récentes.
  • Remplissage de formulaires : possibilité de cliquer sur les champs de formulaire et de les modifier (champs de texte, menus déroulants, cases à cocher et boutons radio, par exemple).
    • Le EditablePdfViewerFragment est compatible avec les fonctionnalités de remplissage de formulaires intégrés, ce qui offre une expérience utilisateur fluide. Cette fonctionnalité est contrôlée par l'API isFormFillingEnabled dans PdfView.
    • EditablePdfDocument : nouvelle interface étendant PdfDocument pour gérer et appliquer les modifications des données de formulaire.
    • Le composable PdfViewer permet d'interagir avec les champs de formulaire, contrôlables via le paramètre isFormFillingEnabled.
  • Enregistrer les modifications : PdfWriteHandle permet d'enregistrer le contenu modifié dans un fichier spécifié.
  • Sélection d'images : ajout de la possibilité de sélectionner des images par appui prolongé dans les documents PDF. Cette fonctionnalité est activée via la propriété isImageSelectionEnabled dans PdfView et le composable PdfViewer. Les données résultantes sont exposées via le modèle ImageSelection dans OnSelectionChangedListener.
  • Mise en page sur deux pages : ajout d'un mode de mise en page côte à côte pour les appareils à grand écran, configurable à l'aide de la propriété pagesPerRow dans PdfView et du composable PdfViewer.

Modifications apportées à l'API

  • Présentation de l'API de sélection d'images dans la bibliothèque Jetpack PDF (Iee0b9, b/470897750)
  • Rendre publiques les API de la couche de traitement du remplissage de formulaires. (Iec39c, b/474260451)
  • Ajout du paramètre renderParams à l'API openDocument dans SandboxedPdfLoader (If9344, b/438269273)
  • Ajout d'API de couche de présentation pour le remplissage de formulaires (I829c5, b/449869703)
  • Ajout de l'annotation @MainThread sur les méthodes de rappel de OnFirstContentLoadListener et OnSelectionChangedListener (I4cf10, b/466965940)
  • Le constructeur ApplyInProgressException a été marqué comme interne, ce qui empêche l'instanciation externe. (I5cc66, b/465414484)
  • Ajout de l'annotation @MainThread sur les méthodes de rappel des écouteurs dans PdfView (Ie7201, b/429407597)
  • Ajout d'API pour les fonctionnalités d'édition native via EditablePdfViewerFragment. (Ifae6c, b/462049364)
  • Ajout de l'API FirstContentLoad à PdfView et PdfViewer (Icf63d, b/461666545)
  • [2Page] Ajout de l'API de mise en page sur deux pages à la bibliothèque PdfViewer (I8d7f1, b/452517650)

Correction de bugs

  • Correction d'une exception due à la fermeture de la page avant la récupération du bitmap (b/475255729)

Version 1.0.0-alpha12

3 décembre 2025

Publication d'androidx.pdf:pdf-*:1.0.0-alpha12. Liste des commits de la version 1.0.0-alpha12

Modifications apportées à l'API

  • Supprimer la fonction textAsString de TextSelection dans androidx-main
  • Changement de nom : clearSelection devient clearCurrentSelection. (I3a318, b/429407597)
  • Suppression de la fonction textAsString de TextSelection. (I1305d, b/429407798)

Correction de bugs

  • Correction d'un problème qui empêchait le défilement rapide dans PdfView d'être visible par défaut. (I7fb0e)
  • Correction d'un plantage dans TextSelectionMenuProvider pour la sélection avec texte nul. (I855df)

Version 1.0.0-alpha11

22 octobre 2025

Publication d'androidx.pdf:pdf-*:1.0.0-alpha11. Liste des commits de la version 1.0.0-alpha11

Nouvelles fonctionnalités

  • Activation des éléments de menu intelligents pour la sélection de contenu PDF.
  • Activation de la sélection de liens hypertexte et de liens "Accéder à" dans les PDF.
  • Exposition de l'API du menu de sélection fromPdfView et du composable PdfViewer, qui permet aux développeurs d'ajouter des éléments de menu de sélection.
  • Ajout d'une API d'alignement de page dans PdfView et PdfViewer Composable, qui permet aux développeurs de choisir l'alignement de la page lorsque la hauteur du contenu est inférieure à la hauteur de la fenêtre d'affichage.

Modifications apportées à l'API

  • contentDesc peut désormais être nul et la valeur par défaut a été supprimée. (I86f8c, b/441973880)
  • Exposer PdfSelectionMenuKeys pour les éléments de menu de sélection de liens (Ic9b05, b/447079082)
  • Ajouter l'API PageAlignment à PdfView et PdfViewer dans androidx-main
  • Modifiez l'API liée à l'angle pour utiliser des degrés et inclure l'unité dans les noms, soyez clair sur les unités dans les utilitaires de conversion d'angle et prenez en charge les degrés et les radians, modifiez l'API StockBrushes pour prendre la version du pinceau de stock comme paramètre de fonction de fabrique et exposez le contrôle du comportement de chevauchement automatique pour les pinceaux de surligneur, renommez MutableAffineTransform.populateFromTranslate en populateFromTranslation, supprimez InProgressStrokesView.setRenderFactory/getRenderFactory. (Id9eab, b/436656418)
  • Ajout de l'API PageAlignment à PdfView et PdfViewer (I9c9a5, b/438065228)
  • Exposer l'API du menu de sélection à partir du composable PdfViewer (Id9b0f, b/407663999)
  • Définissez PdfView comme ViewGroup. Aucune compatibilité avec les enfants arbitraires. (Ib51d8, b/410008792)
  • Exposition de HyperLinkSelection et GoToLinkSelection à partir de PdfView (I378c4, b/441280002)
  • Refactorisation de PdfPageContent pour prendre en charge les sélections génériques (I28f16, b/437845185)
  • Exposition de l'API du menu de sélection à partir de PdfView (Idd547, b/407663737)
  • Déplacement des classes liées à la sélection vers un package dédié (I953cb, b/436157691)
  • Ajout d'une onPdfViewCreated expérimentale pour l'accès à PdfView dans PdfViewerFragment. (I86715, b/422620454)
  • Ajout de l'API FileDescriptor à PdfLoader (I60b8d)

Correction de bugs

  • Amélioration de la modélisation des entrées pour que les traits reflètent plus précisément les entrées (I93097)

Contribution externe

  • Exposer PdfSelectionMenuKeys pour les éléments de menu de sélection de lien
  • Exposer l'API du menu de sélection à partir du composable PdfViewer
  • Exposer l'API du menu de sélection à partir de PdfView

Version 1.0.0-alpha10

16 juillet 2025

Publication d'androidx.pdf:pdf-*:1.0.0-alpha10. Liste des commits de la version 1.0.0-alpha10

Nouvelles fonctionnalités

  • Sélection améliorée permettant aux utilisateurs de sélectionner du texte sur plusieurs pages en faisant glisser les poignées de sélection au-delà des limites des pages.
  • Les applications peuvent désormais intercepter et personnaliser la gestion des clics sur les liens hypertexte dans les documents PDF.

Modifications apportées à l'API

  • Expose un composable pour présenter le contenu PDF (I8e7ee)
  • Déplacement de PdfPoint et PdfRect vers le package androidx.pdf.models (I26cf4)
  • Expose un composant View pour présenter le contenu PDF (I9fe27)
  • Expose l'API pour initialiser les ressources PDF à l'avance et réduire la latence de démarrage à froid (a18fa89)
  • Expose l'API pour remplacer la gestion des clics sur les liens hypertexte dans le contenu PDF(6330a8b)
  • Expose un nouvel artefact pdf-document-service et les API correspondantes : PdfLoader, PdfDocument et SandboxedPdfLoader. Les interfaces peuvent être utilisées pour implémenter le composant d'analyse et de traitement du document PDF (Ide70d).
  • Expose une API pour définir PdfDocument sur PdfView afin d'initialiser le rendu du document (If8738)

Version 1.0.0-alpha09

7 mai 2025

Publication d'androidx.pdf:pdf-*:1.0.0-alpha09. Liste des commits de la version 1.0.0-alpha09

Changements majeurs

  • La base de code a été largement refactorisée et est désormais entièrement écrite en Kotlin, à l'aide de coroutines et de ViewModel. Cela inclut une réimplémentation de PdfViewerFragment. Cette version n'inclut aucune nouvelle API ni fonctionnalité.

Problèmes connus :

  • Les effets d'ombre sont manquants dans le sélecteur rapide et l'indicateur de page.
  • Il est possible que les documents PDF d'une seule page ne soient pas toujours centrés ni mis à l'échelle de la largeur de la vue.

Modifications apportées à l'API

  • Annotez la variable containerStyleResId avec @StyleRes. (I88d85)

Version 1.0.0-alpha08

12 mars 2025

Publication d'androidx.pdf:pdf-document-service:1.0.0-alpha08, androidx.pdf:pdf-viewer:1.0.0-alpha08 et androidx.pdf:pdf-viewer-fragment:1.0.0-alpha08. Liste des commits de la version 1.0.0-alpha08

Correction de bugs

  • Résolution du placement incohérent du menu de sélection entre différents appareils Android en raison de différences de mise à l'échelle. L'emplacement du menu de sélection est désormais cohérent sur tous les appareils.
  • Alignement de la position du sélecteur rapide et de l'indicateur de page lors de la recréation du fragment dans des scénarios tels que le changement de configuration, etc.

Version 1.0.0-alpha07

26 février 2025

Publication d'androidx.pdf:pdf-document-service:1.0.0-alpha07, androidx.pdf:pdf-viewer:1.0.0-alpha07 et androidx.pdf:pdf-viewer-fragment:1.0.0-alpha07. Liste des commits de la version 1.0.0-alpha07

Nouvelles fonctionnalités

  • PdfViewerFragment est désormais compatible avec StylingOptions (un ensemble d'ID de ressources de style), ce qui permet de personnaliser le style via newInstance ou XML (FragmentContainerView). Les sous-classes peuvent utiliser le constructeur protégé pour une fonctionnalité similaire.
  • StylingOptions accepte actuellement containerStyle, qui fournit les éléments suivants :
    • Prise en charge des drawables personnalisés pour la poignée de défilement rapide et l'indicateur de page.
    • Attribut marginEnd pour un positionnement précis de la poignée de défilement rapide et de l'indicateur de page.

Modifications apportées à l'API

  • Ajout d'attributs publics à partir de PdfView. (I30fc5)
  • Ajout de nouvelles API StylingOptions pour l'affichage des PDF. (Id2993)

Correction de bugs

  • Correction d'une incohérence de synchronisation entre la poignée de défilement rapide et l'état de visibilité de l'indicateur de page.

Version 1.0.0-alpha06

29 janvier 2025

Publication d'androidx.pdf:pdf-document-service:1.0.0-alpha06, androidx.pdf:pdf-viewer:1.0.0-alpha06 et androidx.pdf:pdf-viewer-fragment:1.0.0-alpha06. Liste des commits de la version 1.0.0-alpha06

Correction de bugs

  • Correction : plantage causé par IllegalArgumentException lors de la dissociation d'un service non enregistré (eb4e85)
  • Correction : plantage IllegalArgumentException en raison d'une différence entre mMaxPages et numPages. (75d763)

Version 1.0.0-alpha05

11 décembre 2024

Publication d'androidx.pdf:pdf-document-service:1.0.0-alpha05, androidx.pdf:pdf-viewer:1.0.0-alpha05 et androidx.pdf:pdf-viewer-fragment:1.0.0-alpha05. Liste des commits de la version 1.0.0-alpha05

Correction de bugs

  • Cette bibliothèque utilise désormais les annotations de nullité JSpecify, qui sont des annotations d'utilisation de type. Les développeurs Kotlin doivent utiliser l'argument de compilateur suivant pour garantir une utilisation correcte : -Xjspecify-annotations=strict (il s'agit de la valeur par défaut à partir de la version 2.1.0 du compilateur Kotlin). (I38301, b/326456246)
  • Correction de l'affichage de la page précédemment ouverte après une rotation dans Android 13. (Ib03dd)
  • Correction de la disparition de la boîte à outils lors de la rotation. (01148f)

Version 1.0.0-alpha04

13 novembre 2024

Publication d'androidx.pdf:pdf-viewer:1.0.0-alpha04 et d'androidx.pdf:pdf-viewer-fragment:1.0.0-alpha04. Liste des commits de la version 1.0.0-alpha04

Compatibilité étendue

  • La bibliothèque PDFViewer est désormais compatible avec les versions S, T, U et V d'Android. Cette compatibilité améliorée est liée à la mise à jour de l'extension SDK 13.

Modifications apportées à l'API

  • Ajout de la contrainte de SdkExtension minimum à PdfViewerFragment. (I922af)
  • Exposition de nouvelles API pour la bibliothèque PDF Viewer. (I0af57)

Correction de bugs

  • Correction d'un plantage lié à un problème d'arrêt du processus.
  • Corrections de l'UI liées à la boîte de dialogue du mot de passe.
  • Correction de l'accessibilité pour findInFileView et FastscrollView.

Développement en cours

  • Nous travaillons activement à l'intégration de Jetpack Compose dans la bibliothèque.

Version 1.0.0-alpha03

18 septembre 2024

Publication d'androidx.pdf:pdf-viewer:1.0.0-alpha03 et d'androidx.pdf:pdf-viewer-fragment:1.0.0-alpha03. Liste des commits de la version 1.0.0-alpha03

Correction de bugs

  • Résolution du problème lié au clavier qui ne s'affiche pas lorsque la recherche est ouverte pour la première fois
  • Corrections de l'UI liées à la police de la vue FindInFile.
  • Correction de l'interface utilisateur pour la sélection de texte et la poignée de déplacement.

Problèmes connus

  • Les images 3D des documents PDF ne sont pas affichées dans le lecteur.
  • PdfViewerFragment présente des problèmes de performances sur les très grands documents PDF (> 250 Mo).

Version 1.0.0-alpha02

4 septembre 2024

Publication d'androidx.pdf:pdf-viewer:1.0.0-alpha02 et d'androidx.pdf:pdf-viewer-fragment:1.0.0-alpha02. Liste des commits de la version 1.0.0-alpha02

Correction de bugs

  • Le problème d'image PDF floue lors du passage du mode Portrait au mode Paysage et de la mise en veille de l'application a été résolu.
  • Le menu "Rechercher dans les fichiers" conserve désormais le nombre de résultats même lorsque la configuration change.
  • L'icône FloatingActionButton est désormais disponible pour les PDF d'une seule page.
  • Les problèmes de chevauchement entre la barre "Rechercher dans le fichier" et FloatingActionButton ont été résolus.
  • Les annotations de texte et de surbrillance peuvent désormais être affichées dans le lecteur.
  • L'accessibilité de la barre "Rechercher dans le fichier" a été améliorée.
  • Des corrections ont été apportées à l'interface utilisateur pour la rotation, y compris la conservation du nombre de résultats, la résolution du problème de disparition du menu de sélection de texte et la résolution du problème de chevauchement du bouton d'action flottant.
  • Le problème de masquage du menu "Rechercher dans le fichier" derrière le clavier en mode paysage a été résolu.

Problèmes connus

  • Les images 3D des documents PDF ne sont pas affichées dans le lecteur.
  • PdfViewerFragment présente des problèmes de performances sur les très grands documents PDF (> 250 Mo).

Version 1.0.0-alpha01

7 août 2024

Publication d'androidx.pdf:pdf-viewer:1.0.0-alpha01 et d'androidx.pdf:pdf-viewer-fragment:1.0.0-alpha01. Liste des commits de la version 1.0.0-alpha01

Nouvelles fonctionnalités

La première version alpha de PDFViewer inclut des implémentations en preview anticipée qui permettent les principaux scénarios de lecture de PDF. Veuillez noter que PdfViewerFragment n'est actuellement compatible qu'avec les versions Android V (SDK 35). La compatibilité avec les anciennes versions d'Android sera ajoutée dans les prochaines versions.

  • Introduction de PdfViewerFragment, que votre application peut utiliser pour afficher un document PDF. PdfViewerFragment simplifie l'intégration d'une visionneuse de PDF dans votre activité et permet aux utilisateurs d'interagir de différentes manières :
    • Zoom : pincez l'écran pour faire un zoom avant ou arrière et ajuster le niveau de zoom pour une lecture confortable. Vous pouvez également appuyer deux fois pour faire un zoom avant ou arrière rapide et revenir à l'état par défaut.
    • Navigation : faites défiler l'écran dans l'état par défaut/zoomé. PdfViewerFragment fournit un sélecteur rapide pour faire défiler rapidement les pages.
    • Actions sur le texte : un appui prolongé sur du texte le sélectionne, ce qui permet aux utilisateurs d'utiliser des options telles que "Copier" et "Tout sélectionner" sur la page actuelle.
    • Documents protégés par mot de passe : PdfViewerFragment affiche une boîte de dialogue permettant à l'utilisateur de saisir le mot de passe et d'ouvrir le document.
    • Liens hypertexte permettant la navigation : les utilisateurs peuvent accéder à des URL Web ou à des favoris en appuyant sur les liens hypertexte dans le PDF.
    • Raccourci vers le mode Annotations : le mode Édition n'est pas encore disponible dans PdfViewerFragment. Au lieu de cela, PdfViewerFragment affiche un FloatingActionButton qui déclenche un intent android.intent.action.ANNOTATE implicite avec l'URI du document.

Modifications apportées à l'API

  • Ajout de la propriété PdfViewerFragment.documentUri pour définir un URI de fichier ou de contenu pour le document et lancer le chargement du document. PdfViewerFragment affiche une icône de chargement lorsque l'URI est défini, ce qui indique le traitement en arrière-plan du document.
  • Ajout de PdfViewerFragment.isTextSearchActive pour activer/désactiver la visibilité du menu "Rechercher dans le fichier". PdfViewerFragment gère l'ensemble du flux, en permettant la saisie, en affichant le nombre total de correspondances, en permettant la navigation entre les résultats et en quittant le flux.
  • Ajout des rappels onDocumentLoadSuccess et onDocumentLoadError, qui sont appelés après le rendu réussi du document ou après le déclenchement d'une erreur avant le rendu.

Problèmes connus

  • Dans certains cas, la barre "Rechercher dans le fichier" se chevauche avec FloatingActionButton.
  • L'icône FloatingActionButton n'est pas visible pour les PDF d'une seule page.
  • Le nombre de résultats n'est pas conservé lors d'un changement de configuration dans le menu "Rechercher dans les fichiers".
  • Le menu "Rechercher dans le fichier" clignote lorsqu'il est fermé
  • Les images 3D des documents PDF ne sont pas affichées dans le lecteur.
  • Les fonctionnalités d'accessibilité seront activées dans les prochaines versions.
  • L'image PDF devient floue lorsque vous passez du mode Portrait au mode Paysage.
  • Les annotations de texte/surlignage ne sont pas acceptées.
  • PdfViewerFragment présente des problèmes de performances sur les très grands documents PDF (> 250 Mo).

Commentaire

  • Mettre à jour compileSdk vers 35 5dc41be