Donnez vie à vos documents numériques !
 

envoi mail avec PDF et XML en pièce jointe

abracadabraPDF Forums PDF – Général envoi mail avec PDF et XML en pièce jointe

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45472

    Bonjour,

    j’ai réalisé un formulaire en pdf. Ce formulaire une fois saisi et validé, est enregistré sur l’ordinateur puis est envoyé par mail.

    Le mail est créé automatiquement et reçoit automatiquement en pièce jointe le pdf. J’aimerais y associé un xml qui reprendrait un certain nombre de champs du formulaire pour réaliser ensuite des études sur les données.

    Comment puis-je faire pour que les 2 fichiers soient envoyés en même temps ?

    Merci à vous

Affichage de 25 réponses de 1 à 25 (sur un total de 26)
  • Auteur
    Réponses
  • #61085
    Merlin
    Maître des clés

    Bonjour.

    Quand et comment comptes tu créer le fichier XML ?
    Ne serait-ce pas plus simple de le créer après réception du formulaire rempli ?

    #61086

    C’est bien là la question  :Euuuh:  :mur:

    J’ai créé un javascript qui code tout le xml mais je ne sais pas comment le ressortir dans un fichier (là il est dans un messagebox).

    La question est comment faire pour que mes utilisateurs (médecins) qui vont recevoir tous ces formulaires pdf sache ressortir les xml simplement sans mon aide !

    L’autre possibilité serait de garder un bouton xml dans le fichier pdf et qu’en cliquant dessus le fichier xml se crée. Et comme cela ce n’est pas envoyé par mail puisque c’est eux qui le génère.

    Si je ne suis pas clair, dites le moi  :jerisjaune:

    #61087
    Merlin
    Maître des clés

    L’autre possibilité serait de garder un bouton xml dans le fichier pdf et qu’en cliquant dessus le fichier xml se crée. Et comme cela ce n’est pas envoyé par mail…

    Veux tu l’envoyer par email ou non ?

    En tous cas, à mon avis le plus simple serait d’enregistrer le XML en pièce jointe dans le formulaire PDF, comme ça il suivra automatiquement sans plus s’en soucier.
    :Smiley15:

    #61088

    Je n’ai pas réussi à changer mon titre.

    Donc non plus d’envoi par mail. Après réflexion, il faut que mon xml se génère à la fin du remplissage du PDF.

    J’ai trouvé ça : https://eligrey.com/demos/FileSaver.js/ mais je ne sais pas si on peut le faire dans un pdf.

    Et le code apparemment ici : https://developers.google.com/web/updates/2011/08/Saving-generated-files-on-the-client-side

    N’étant pas un vrai développeur mais plus un bidouyeur, je ne sais pas si ça peut m’aider.

    #61089
    Merlin
    Maître des clés

    J’ai trouvé ça : https://eligrey.com/demos/FileSaver.js/ mais je ne sais pas si on peut le faire dans un pdf.

    Non, ça ne fonctionnera pas : exécuté depuis un document PDF un JavaScript ne peut pas sortir dudit document, contrairement à ce qui peut se faire dans les navigateurs web.

    On peut enregistrer un fichier texte en pièce jointe dans le PDF mais ça passe par une autre méthode.

    #61090

    et quelle est cette méthode ?

    Si pas d’autres solutions

    #61091
    Merlin
    Maître des clés

    createDataObject
    openDataObject
    getDataObjectContents
    removeDataObject

    Etc.

    Tous les détails dans : help.adobe.com/livedocs/acrobat_sdk/9.1/Acrobat9_1_HTMLHelp/wwhelp/wwhimpl/js/html/wwhelp.htm
    :soleil:

    #61092

    Merci

    je vais regarder ça

    #61093

    J’ai le débogueur de script qui s’ouvre et qui me dit :

    NotAllowedError: Les paramètres de protection interdisent l’accès à cette propriété ou à cette méthode.
    Doc.createDataObject:58:Field

    Or, quand je vais dans les paramètres du document, il me dit qu’il n’y a pas de protection.

    Ca vient d’où ?

    #61094
    Merlin
    Maître des clés

    Dans la doc. JavaScript il faut que tu cherches « Quickbars ».
    C’est le truc qui détaille toutes les limitations de chaque fonction ou propriété.

    Ce problème n’a rien à voir avec la protection du document, c’est une question de niveau d’utilisation du script.
    Voir absolument : http://abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/

    :idee:

    #61095

    Il faut donc que je crée un script d’application à placer dans le répertoire javascript d’adobe reader.

    Je vais voir comment créer cela

    #61096
    Merlin
    Maître des clés

    Le plus simple c’est de créer une fonction dans le script d’application.

    Du genre :

    Code:
    function maSuperFonction()
    {
    // blablabla
    }

    Et d’appeler cette fonction depuis les évènements du document.
    :soleil:

    #61097

    Bon ça ne marche pas  :Euuuh:

    Message d’erreur est :
    Plugin enregistrement Document en place.

    SyntaxError: illegal character
    1:Folder-Level:App:piecejointe.js
    ReferenceError: piecejointe is not defined
    65:Document-Level:Generer XML

    Pour rappel j’utilise Adobe Accrobat Reader DC

    Voilà ce que j’ai fait :
    dans le script .js j’ai mis ça :
    piecejointe=app.trustedFunction(function()
    {
    cpath=global.nomfichier;
    cdata=global.donnee;
    app.beginPriv();
    this.createDataObject(cpath, cdata);
    app.endPriv();
    })

    dans mon pdf j’ai mis çà :
    global.nomfichier= « depistage. » +nompatient +prenompatient + ».xml »;

    global.donnees = stAlert;

    piecejointe();

    avec stAlert qui est la variable contenant tout mon code xml

    Merci de ton aide au grand magicien du javascript

    #61098
    Merlin
    Maître des clés

    Il faudrait essayer d’emballer la trusted function dans une fonction « normale » du type :

    function mesPiecesJointes() {
    piecejointe=app.trustedFunction(function()
    {
    cpath=global.nomfichier;
    cdata=global.donnee;
    app.beginPriv();
    this.createDataObject(cpath, cdata);
    app.endPriv();
    })
    }

    Et ensuite appeler la fonction « normale » depuis le document…

    #61099

    Je n’ai désormais plus que l’erreur :
    ReferenceError: mesPiecesJointes is not defined
    65:Document-Level:Generer XML

    une idée ?

    Veux-tu les fichiers ?

    #61100
    Merlin
    Maître des clés

    une idée ?

    Non.  :Euuuh:

    Veux-tu les fichiers ?

    Oui…

    #61101

    le fichier txt bien sûr à mettre en .js

    pour le pdf, le script se trouve dans le dernier bouton de la page 4

    merci à toi

    #61102
    Merlin
    Maître des clés

    Je ne comprend pas tout dans tes scripts mais je comprend mieux ce que tu veux faire.

    Dans le document ci-joint, qui fonctionne un peu sur le même principe, on génère un fichier TXT qu’on place en pièce jointe sans avoir besoin de trusted function ni d’un script de document.
    Je te laisse examiner le script (dans le bouton gris).
    :Smiley15:

    #61103
    Merlin
    Maître des clés

    Mauvaise nouvelle : je viens de tester le PDF que je viens de poster avec Reader et ça ne fonctionne pas.
    Ce que confirme la documentation : la fonction createDataObject requiert les file attachment rights

    En clair il faudrait que ton formulaire PDF soit activé via un serveur LiveCycle d’Adobe, Acrobat Pro ne pouvant activer que les droits F, C et S, c’est-à-dire juste au niveau inférieur.

    Je cite :

    The property or method is allowed in Acrobat Pro and Acrobat Standard. It can be accessed in Adobe Reader (version 5.1 or later) depending on additional usage rights that have been applied to the document:
    F — Requires forms rights
    C — Requires the right to manipulate comments
    S — Requires the document save rights
    D — Requires file attachment rights
    G — Requires digital signature rights

    #61104

    Bon bah tant pis.  :Smiley02:

    Merci en tout cas pour le temps que tu m’a consacré.

    #61105

    J’ai pensé à une autre solution mais je ne sais pas si c’est réalisable.

    J’ai créé un champ texte avec à l’intérieur l’ensemble de mes données séparées par un « ; » afin de copier celles-ci dans un fichier excel. Le médecin pourra ensuite les remettre en colonne.

    Il faudra donc pouvoir créer une fonction via un bouton pour réaliser la copie de ce champ afin d’aller simplement coller dans excel ce qu’on a copié.

    Penses-tu que cela est réalisable dans ma configuration ?

    #61106
    Merlin
    Maître des clés

    Tant qu’à faire intervenir l’utilisateur, je crois que le plus simple serait d’envoyer les données structurées* dans la Console et ensuite de lui afficher la Console sous les yeux.
    À charge pour lui de copier-coller les données (on peut éventuellement le briefer avant, via une alerte).

    :geek:

    *  Mais rien n’empêche d’utiliser un champ préalablement pour structurer les données, ou juste parce-que le script est existant, et de les envoyer ensuite à la Console

    #61107
    Merlin
    Maître des clés

    Du style :

    Code:
    var sMesDatas = this.getField(« CHAMP-TEXTE »).valueAsString;
    console.clear();
    console.show();
    console.println(« Merci de copier-coller les données ci-dessous :rr » + sMesDatas);

    Et le tour est joué !
    :geek:

    #61108

    Merci à toi Merlin.

    cette façon d’afficher le message est tout de suite plus PRO.

    :bonjour:

    #61109
    Merlin
    Maître des clés

    Pour faire vraiment Pro je te conseille plutôt d’afficher une grande et belle fenêtre JavaScript sous les yeux ébahis et admiratifs de tes utilisateurs.
    Exemple ci-joint.

    :soleil:

Affichage de 25 réponses de 1 à 25 (sur un total de 26)
  • Vous devez être connecté pour répondre à ce sujet.