La fonction PDF

  • Fabrice

    Membre
    19 février 2024 à 15h33

    Le document PDF est généré, mais je n’ai pas les informations que j’ai saisies.

    C’est l’écran que je quitte qui génère le pdf.

    Et, à toutes fins utiles, j’ai suspendu la fonction navigate pour vérifier le bon fonctionnement PDF, et, je n’ai toujours pas mon pdf valorisé

  • Fabrice

    Membre
    19 février 2024 à 17h17

    Lorsque je réceptionne le fichier PDF, je constate qu’il y a des Ko.

    J’ai selectionné les champs invisibles de mon pdf et je constate que les données sont bien présentes une fois copiés sur un document word.

    Maintenant, reste à afficher la bonne couleur pour les futurs utilisateurs, qui est par défaut celle de power apps.

  • Fabrice

    Membre
    20 février 2024 à 10h38

    Bonjour,

    Savez vous comment faire apparaitre la police sur le document pdf ?

    J’ai une partie qui s’affiche. Je n’y comprends rien.

    Merci d’avance pour vos lumières 💡

  • R3dKap

    Membre
    20 février 2024 à 14h57

    Salut Fabrice,

    Est-ce que tu peux décrire l’écran ou le conteneur que tu transmets en tant que premier paramètre de ta fonction PDF() ?

    Comment les élément sont agencés ? Quelle police utilisée ? Quelle couleur ?

    La fonction PDF() est censée faire un genre de “capture” de ton écran dans ton PDF. Et ça fonctionne bien de mon côté.

    Autre chose : est-ce que tu peux détailler ta méthode pour la conversion du résultat de la fonction PDF() en fichier ?

  • Fabrice

    Membre
    21 février 2024 à 10h57

    Salut R3dKap,

    Je te remercie pour ton retour.

    Voici les élements de réponses en sachant que j’ai de nouveau fait un écran à partir de zéro. Je n’ai fait aucune modification excepté de mettre la police en gras et souligner quelques mots.

    J’obtiens toujours le même résultat. Voici la capture d’écran :

    J’ai supprimé les deux images, réparties en haut à gauche et à droite, et comme tu peux le voir (partiellement), seule l’image de droite s’affiche sur le PDF.

    J’ai donc supprimé les deux images et j’ai obtenu le formluaire PDF.

    Je laisserai à supposer que les images sont les éléments bloquant l’affichage (?).

    La formule PDF utilisée est celle ci “

    PDF(Screen1; {DPI: 72; Margin: “25mm”; Orientation: “Portrait”})

    Concernant les images et l’écran, je n’avais pas mis de conteneur.

    J’ai remis les images (avec et sans conteneur) et j’obtiens maintenant ceci.

    Comment je pourrais rémedier à ce souci ?

    Le bout du tunnel est proche !

    Merci encore !

    • Cette réponse a été modifiée Il y a 9 mois par  Fabrice.
  • Fabrice

    Membre
    22 février 2024 à 10h20

    Bonjour

    Apres avoir tout refait, tout semble fonctionner “normalement”. J’ai pris des images de meilleures qualités et elles apparaissent correctement sur mon pdf.
    Ceci dit, je ne comprends toujours pas le comportement du pdf qui n’affichait pas les informations.
    Merci Geoffroy et R3dKap de vous être penchés sur mon souci.

  • R3dKap

    Membre
    22 février 2024 à 10h56

    Est-ce que tu peux me mettre une capture complète de ton écran stp ?

  • Patrice

    Membre
    22 février 2024 à 10h57

    Hello,

    travaillant sur une Apps avec la onction PDF() en expérimentation aussi, la solution la “plus simple” que j’ai trouvé cela a été :

    • 1 container global que je vais exporte en PDF : c_global_pdf
    • 1 sous-container vertical : s_c_vertical_1 dans lequel je vais ajouter 1 ou plusieurs container horizontaux / verticaux / libre en fonction de mes besoins. Tout est classé dans un container.

    Ensuite je calibre en terme de taille mon c_global_pdf en fonction du contenu :

    width = parent.width
    height = s_c_vertical_1.height + s_c_vertical_2.height + etc...

    Et je m’assure du positionnement de chaque container via leur Y :

    y du s_c_vertical_2 = s_c_vertical_1.height

    Ensuite, j’exporte le container principal c_global_pdf traditionnellement.

    Image, texte, gallerie, couleurs, gras, italique, tout fonctionne bien…

  • Fabrice

    Membre
    24 février 2024 à 10h56

    Bonjour R3dKap,

    Voici une capture de mon écran :

    Et les différentes formules sont :

    <div>
    <div>
    <div>Office365Outlook.SendEmailV2(“nom@mail.com”;”Fiche de liaison”;”Voici la fiche de liaison”;{Attachments:Table({Name:”Fiche de liaison.pdf”;ContentBytes:PDF(Screen1)})});;</div>
    <div> </div>
    <div>//PDF(Screen1;{DPI:72;Margin:”25mm”;Orientation:”Portrait”});;</div>
    <div>//PDF(Container1; {Size: A4})</div>
    </div>
    </div>

    Je n’utilise pas de conteneur. A vrai dire, je n’avais pas réellement compris la nécessité des conteneurs à ce jour.

    Merci d’avance

  • Fabrice

    Membre
    24 février 2024 à 11h02

    Bonjor Patrice,

    Merci pour ton partage.

    Dans mon précédent post, j’écris que je n’ai pas saisi la nécessité des conteneurs. Je m’appuierai sur ton descriptif pour les utiliser.

    Lorsque tu dis “tu exportes ton conteneur global”, est ce que tu fais référence au terme “expandcontainers” pour l’intégrer dans le pdf ?

  • R3dKap

    Membre
    24 février 2024 à 18h38

    Salut Fabrice,

    Merci pour la capture. Bon ton écran n’a pas l’air très compliqué.

    A ta place je testerais déjà le résultat de la fonction PDF() avant d’envoyer quoique ce soit par mail :

    • tu crées un nouvel écran ScreenPDF où tu mets un contrôle Visionneuse PDF et dans sa propriété Document tu mets :
      gloPDF
    • sur l’icône PDF de ton écran Screen1 tu mets dans le OnSelect :
      Set(gloPDF; PDF(Screen1));; Navigate(ScreenPDF)
    • tu lances l’app sur Screen1 et tu cliques sur l’icône PDF : il va mouliner quelques secondes le temps de générer le PDF puis il va aller automatiquement sur l’écran ScreenPDF où tu pourras voir le résultat de ton PDF -> est-ce que ça ça fonctionne déjà ?

    Autre question : sur ton écran je vois des contrôles Tx_Mail, Tx_Adresse, etc… mais ils sont vides à l’écran. C’est parce-qu’il n’y a pas de données dedans ?

    Note : le paramètre ExpandContainers de la fonction PDF() sert à faire en sorte que si tu passes un conteneur comme premier paramètre de la fonction, si jamais des contrôles sont situés en dehors de l’écran (et que tu as donc une barre de défilement dans ton conteneur quand tu exécutes l’app) le PDF généré reprenne bien également tous les éléments en dehors de l’écran.

  • Fabrice

    Membre
    27 février 2024 à 9h38

    Salut R3dKap,

    Merci pour tes conseils. Oui, tout fonctionne correctement. Et oui, effectivement, il n’y a pas de données dans les contrôles que tu as pu voir à l’écran.

    Je laisserai à supposer avoir touché un paramètre qu’il ne fallait pas pour ne pas voir les données saisies.

    Merci !

  • Fabrice

    Membre
    7 juin 2024 à 15h14

    Bonjour,

    J’ai réussi à créer et rendre fonctionnelle mon application : renseigner un formulaire et l’envoyer par mail au format A4. A date, elle fonctionne pour une seule organisation, et, ce fichier PDF est destiné à un ou deux référents d’une structure.

    Aujourd’hui, je veux la partager à d’autres structures et à leurs référents associés.

    Pour cela, j’ai crée une liste SharePoint dans laquelle se trouvent le nom des agences et les adresses mails des référents.

    Sur l’application, j’ai ajouté un contrôle « Menu déroulant »

    La difficulté que je recontre aujourd’hui est :

    Le fichier PDF envoyé par mail n’est plus au format A4.

    J’ai beau modifier les marges mais rien n’y fait. Comment je pourrai corriger cela ?

    Voici ma formule de départ :

    PDF(

    DataCard4;

    {

    DPI: 300;

    Margin: “13mm 13mm 13mm 13mm”;

    Orientation: “portrait”

    }

    );;

    Office365Outlook.SendEmailV2(

    “fabrice@mail.fr,patrice@mail.fr,patrick@mail.fr “;

    “Proposition d’accompagnement global”;

    “Bonjour, Je vous prie de trouver une proposition d’accompagnement. Cordialement.”;

    {

    Attachments: Table(

    {

    Name: “Sc_AccoGlo.pdf”;

    ContentBytes: PDF(DataCard4)

    }

    )

    }

    )

    Et les nouvelles formules sont :

    Set(

    varPDF;

    PDF(

    DataCard4;

    {

    DPI: 300;

    Margin: “13 mm 13mm 13mm 13mm”;

    Orientation: “portrait”

    }

    )

    );;

    // Récupérer les adresses emails associées à l’agence sélectionnée

    Set(

    selectedEmails;

    LookUp(

    RefAccoGlo;

    Titre = Dropdown1.Selected.Value

    ).Emails

    );;

    // Convertir les emails en table pour l’envoi

    Set(

    emailTable;

    Split(

    selectedEmails;

    “;”

    )

    );;

    // Envoyer l’email avec pièce jointe

    Office365Outlook.SendEmailV2(

    Concat(

    emailTable;

    selectedEmails & “;”

    );

    “Proposition d’accompagnement global”;

    “Bonjour, Je vous prie de trouver une proposition d’accompagnement. Cordialement.”;

    {

    Attachments: Table(

    {

    Name: “Sc_AccoGlo.pdf”;

    ContentBytes: varPDF

    }

    )

    }

    );;

    Voici comment le fichier apparait dans ma messagerie :

    Je vous remercie par avance pour votre expertise.

    Fabrice

  • R3dKap

    Membre
    10 juin 2024 à 10h03

    Salut Fabrice,

    Regarde la doc officielle de la fonction PDF() : https://learn.microsoft.com/en-us/power-platform/power-fx/reference/function-pdf

    Tu verras qu’il y a un paramètre Size qui te permet de définir la taille de la page générée… A voir si ça résoud ton problème…

  • Fabrice

    Membre
    14 juin 2024 à 15h17

    Hello R3dKap,

    Je te remercie. Je vois cela de suite.

Page 2 sur 3

Connectez-vous pour répondre.