Compléter un modèle Word et générer un PDF [Premium]
Gonzague Ducos
L’objectif est de générer un fichier PDF à partir d’un modèle Word complété (comme un mailing), y compris la signature. Le connecteur Word Online a une licence Premium.
Dans Word (version Bureau, pas online)
Afficher l’onglet Développeur (Fichier >Options > Personnaliser le ruban > cocher Développeur à droite)
Dans n’importe quel endroit du document :
Cliquer sur un des contrôles, par exemple Contrôle de contenu de texte brut ou Image.
Sur chaque contrôle : sélectionner le contrôle et cliquer sur Propriétés. Définir un titre (il s’affichera ensuite dans Power Automate).
Dans notre exemple, insérer au moins un Contrôle de contenu de texte brut (titre : InfoSaisie) et une image (titre : UneSignature)
Enregistrer le document (pas nécessairement comme un modèle)
Envoyer le document dans OneDrive.
Dans PowerApps
Ajouter un contrôle Entrée au stylo, une zone de saisie et un bouton.
Le texte saisie et la signature seront ajoutés au fichier.
Définir l’évènement OnSelect de l’entrée stylo sur :
Set(varStylo; JSON(PenInput1.Image;JSONFormat.IncludeBinaryData)).
Dans Power Automate
Créer un flux avec un déclencheur PowerApps (pas V2)
Ajouter une action Créer un fichier (OneDrive for Business)
Définir Chemin vers le fichier.
Définir Nom du fichier sur signature.png.
Définir Contenu du fichier sur l’Expression :
base64ToBinary(triggerBody()['Créerunfichier_Contenudufichier'])
Ajouter une étape Obtenir le contenu du fichier.
Dans Fichier, cliquer sur ID depuis le Contenu dynamique.
Ajouter une étape Remplir un modèle Microsoft Word (Word online)
Compléter Emplacement par OneDrive for Business.
Compléter Bibliothèque de documents.
Compléter Fichier en recherchant le fichier Word. Les 2 zones spécifiques à notre document s’affichent (InfoSaisie et UneSignature)
Pour InfoSaisie, cliquer sur Demander dans PowerApps du volet Contenu dynamique (cliquer sur Voir plus devant PowerApps pour voir l’option)
Pour UneSignature, cliquer sur Contenu du fichier depuis le volet Contenu dynamique.
Ajouter de nouveau une étape Créer un fichier (OneDrive)
Renommer la en Créer le fichier Word.
Compléter Chemin d’accès du dossier
Compléter Nom fichier par fichier_test.docx.
Dans Contenu du fichier, cliquer sur Document Microsoft Word depuis le volet Contenu dynamique.
Ajouter une étape Convertir le fichier à l'aide d'un chemin d'accès.
Renommer l’étape Convertir en PDF
Dans Chemin d’accès au fichier, cliquer sur Chemin dans le volet Contenu dynamique.
Ajouter de nouveau une étape Créer un fichier (OneDrive)
Renommer la en Créer le fichier PDF.
Compléter Chemin d’accès du dossier
Compléter Nom fichier par fichier_test.pdf.
Dans Contenu du fichier, cliquer sur Contenu du fichier depuis le volet Contenu dynamique.
Ajouter une étape Répondre à une instance PowerApp ou à un flux.*
Cliquer sur Ajouter une sortie puis Fichier
Saisir Fichier puis cliquer dans la zone suivante, saisir
body('Convertir_en_PDF')?['$content']
[TODO capture]
Enregistrer le flux en lui donnant un nom.
De retour dans l’application PowerApps
Dans la barre d’outils de gauche, cliquer sur Power Automate. Cliquer sur Ajouter un flux et cliquer sur le flux précédemment créé.
Sur le bouton, modifier sa propriété OnSelect en ajouter une 2nd ligne, ce qui donne au final :
Set(varStylo; JSON(PenInput1.Image;JSONFormat.IncludeBinaryData));;
Set(varStylo; Mid(varStylo; 24; Len(varStylo)-24));;
Set(fichier_retour; Doc1.Run(varStylo;TextInput1.Text))
où <Nom du flux> est le flux précédemment créé.
Pour avoir un aperçu du fichier PDF dans l’application Power Apps :
Ajouter un contrôle Aperçu PDF
Affecter à sa propriété Document la valeur fichier_retour.fichier.