Afficher un document dans le PdfViewer de Power Apps
Limitations techniques du composant :
- L’architecture de sécurité de Power Apps nécessite que le contrôle PDF Viewer soit compatible uniquement avec les liens HTTPS, pas HTTP.
- La propriété Document doit être liée directement au fichier PDF. Les redirections de serveur ou les vues HTML du document ne sont pas prises en charge.
- Le serveur qui héberge le document ne doit pas exiger d’authentification.
- Il est possible que vous ne puissiez pas afficher un document PDF dans votre application si le document réside sur un serveur qui a des paramètres restrictifs de partage de ressources d’origine croisée (CORS). Pour résoudre ce problème, le serveur qui héberge les documents PDF doit autoriser les demandes d’origine croisée provenant de powerapps.com.
- Les utilisateurs de l’application peuvent contourner ces limitations en ouvrant des documents PDF dans un navigateur externe, comme demandé si le contrôle ne peut pas ouvrir un document. Cette option est également disponible dans le menu de contrôle pour tous les documents externes.
Contexte :
Il y a quelques jours, un client m’a demandé d’afficher un fichier PDF en cliquant sur un bouton Power Apps. (Ce fichier est déjà stocké dans une bibliothèque SharePoint).
Bien que Power Apps dispose déjà d’un contrôle permettant à l’utilisateur de voir le PDF dans Power Apps, l’utilisation de ce contrôle n’est pas simple à cause de l’architecture de sécurité qui nécessite que le contrôle PDF Viewer soit des liens HTTPS, et pas http.
Voici donc un tutoriel pas à pas pour utiliser la visionneuse PDF dans un formulaire Power Apps !
Paramétrage du site SharePoint :
Dans votre site SharePoint :
- Se positionner sur une bibliothèque de document
- Ajouter une colonne de type « Plusieurs ligne de texte »
- Nommer cette colonne « DataURI »
Création du Power Automate :
Créer un Power Automate pour lire la pièce jointe de l’élément PDF
Créer un Power Automate avec un déclencheur en « Quand un fichier est créé (propriété uniquement) ».
Nommer votre flux.
Insérer une action appelée « Obtenir le contenu du fichier » et insérer le lien de votre site SharePoint et l’Id de votre fichier « Identificateur ».
Ajouter une action « Message ou Compose en anglais » et mettre comme entrée le « Corps du contenu de fichier de l’action précédente ».
Ensuite, ajouter une dernière action : « Mettre à jour les propriétés du fichier », en remettant le lien du site SharePoint, ainsi que le nom de la bibliothèque de document.
Le point très important ici est que la sortie fournie par l’action précédente « Obtenir le contenu de la pièce jointe » ne peut pas être utilisée directement pour la visionneuse PDF, nous la convertissons donc en base64(), en utilisant la formule ci-dessous qui va être ajouter dans la colonne « DataURI » précédèrent crée dans notre bibliothèque : donc le contenu de cette colonne sera :
dataUri(base64ToBinary(body('Obtenir_le_contenu_du_fichier')['$content']))
=>Pour Info : Base64 est un groupe de schéma pour encoder des données binaires sous forme d’un texte au format ASCII grâce à la représentation de ces données en base 64. Le terme base64 vient à l’origine de l’encodage utilisé pour transférer certains contenus MIME.
Les schémas d’encodage en base64 sont principalement utilisés lorsqu’il s’agit d’enregistrer ou d’envoyer des données binaires via un media qui a été conçu pour gérer du texte. Cette transformation permet de conserver l’intégrité et la véracité des données envoyées lors du transport
Paramétrage côté Power Apps
Dans le volet Donnée, ajouter votre bibliothèque comme source de données
Sur un écran de votre application, insérer le composant Pdf Viewer
Dans la propriété « Document » de ce composant, ajouter cette formule :
LookUp(Nom_Bibliothèque ;Nom="Mon_Fichier").DataURI
DataUri est la colonne qui contient le lien de votre fichier convertit avec Base64()
Et voilà j’espère que ce tutoriel vous aidera pour mieux utiliser ce fameux composant PowerApps !
Enjoy it !
Liens utiles
Base64() : https://developer.mozilla.org/fr/docs/Glossary/Base64
Documentation officielle Microsoft : https://docs.microsoft.com/fr-fr/powerapps/maker/canvas-apps/controls/control-pdf-viewer
Autrice

Aïcha Kassimi
Consultante Power Apps