Donnez vie à vos documents numériques !
 

Renomage du form avec incrémentation de champs. – RÉSOLU

abracadabraPDF Forums PDF – Général Renomage du form avec incrémentation de champs. – RÉSOLU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44302
    jsamica
    Membre

    Bonjour à tous,

    Est ce possible lors de l’envoi par mail d’un form, que celui ci se trouvant alors en pj, soit nommé avec une incrémentation de champs du genre :

    nomdufichier_champsnom_champsdate.pdf

    Merci pour votre aide.
    :bonjour:

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

    Salut,

    C’est possible si et seulement si on a au préalable placé un “script d’application” dans le dossier JavaScript d’Acrobat ou de Reader (sécurité oblige).
    Un script d’application c’est un bête fichier texte avec l’extension .js qui contient du code JavaScript.

    Sinon, on peut ruser en récupérant le contenu (données) d’un ou plusieurs champs pour composer un nom de fichier.
    Ensuite on affiche à l’utilisateur une alerte lui permettant de copier le nom de fichier proposé et lui expliquant ce qui se passe.
    Pour finir, l’utilisateur n’a plus qu’à coller le nom de fichier dans la boite de dialogue d’enregistrement qui suit.

    Bien entendu, c’est un peu lourdingue et ça ne fonctionne que si l’utilisateur se sert d’un bouton/signet spécialement créé à cet effet.
    S’il utilise le menu Fichier, c’est mort…

    :Smiley15:

    #53748
    jsamica
    Membre

    Salut Merlin,
    Merci pour ces explications
    Tu n’aurais pas à tout hasard un exemple stp ? le code n’est pas mon meilleur ami !  :oh:

    :bonjour:

    #53749
    Merlin
    Maître des clés

    C’est un exemple amputé pour cause de confidentialité mais le principe y est :

    – le champ Nom clignote pour attirer l’attention (script de document qui s’exécute à l’ouverture seulement si le champ Nom est vide),
    – une fois rempli, ce champ déclenche l’apparition du bouton Enregistrer et génère un numéro (unique car basé sur la date et l’heure courante),
    – quand on clique dessus (difficile de le rater !) le bouton Enregistrer assemble les données contenues dans le champ Nom plus le champ Numéro plus un terme fixe pour former un nom de fichier qui est proposé dans une fenêtre.

    Contrairement à Mac OS, sur Windows le texte d’une fenêtre d’alerte n’est pas sélectionnable et encore moins copiable, donc on utilise une fenêtre de saisie. Ce qui permet le copier-coller dans tous les cas de figure.

    :Smiley15:

    [attachment deleted by admin]

    #53750
    jsamica
    Membre

    :bravo: :extra:
    une fois de plus au top Merlin  :priere:
    Mille merci
    :bonjour:

    #53751
    jsamica
    Membre

    Bonjour Merlin,
    Suite à ta précédente réponse, j’ai réalisé des tests en supprimant les morceaux qui à priori ne m’intéressait pas.
    Voici mon code qui ne fonctionne pas, :

    Code:
    var strFixe = “Fiche-exemple”;
    var strNom = this.getField(“nom”).value;
    var strNum = this.getField(“date”).value
    {this.info.Title = strFixe + “-” + strNum + ” – ” + strNom ;}

    Il est joint dans un nouveau script du bouton envoi.
    Il s’exécute avant le script d’envoi classique.

    Du coup je me pose une question ne peut on pas concaténer le champs “Attacher” de la même manière que l’ensemble des autres variables du mail (To, Cc, object, body…) ?

    Merci
    :Smiley03:

    #53752
    Merlin
    Maître des clés

    Du coup je me pose une question ne peut on pas concaténer le champs “Attacher” de la même manière que l’ensemble des autres variables du mail (To, Cc, object, body…) ?

    Heeuuu…
    Je ne comprend la question…
    :Euuuh:

    Sinon, concernant ton script, je n’ai pas testé mais je pense qu’il suffit de supprimer les accolades :

    var strFixe = “Fiche-exemple”;
    var strNom = this.getField(“nom”).value;
    var strNum = this.getField(“date”).value
    this.info.Title = strFixe + “-” + strNum + ” – ” + strNom ;

    :Smiley03:

    PS : this.info.Title ne fonctionne que dans Acrobat, pas dans Reader…
    Donc le mieux c’est :

    /* si application active est Acrobat */
    if (app.viewerVariation == “Full”)
    {
    var strFixe = “Fiche-exemple”;
    var strNom = this.getField(“nom”).value;
    var strNum = this.getField(“date”).value
    this.info.Title = strFixe + “-” + strNum + ” – ” + strNom ;
    }


    :idee:

    #53753
    jsamica
    Membre

    Salut Merlin j’ai essayé ton script, mais cela ne fonctionne pas !  :Euuuh:
    Je joins une fichier exemple.
    Peux stp cepedant m’expliquer la différence entre ces 2 scripts ?

    Merci
    :bonjour:

    [attachment deleted by admin]

    #53754
    Merlin
    Maître des clés

    Ton script et ton fichier d’exemple fonctionnent très bien, mais this.info.Title c’est pour changer le Titre du document, pas le nom de fichier…

    Le différence entre les deux scripts c’est la première ligne qui protège l’exécution du script : le code placé entre les accolades ne s’exécute qu’en présence d’Acrobat, en présence de Reader il ne s’exécute pas.
    :idee:

    #53755
    jsamica
    Membre

    ah ok je pouvais tester longtemps…
    y a t’il donc une balise pour changer le nom de fichier ?
    C’est ce que je cherche à faire, et non pas le titre du doc.

    ok pour l’explication, bon à savoir !!

    Merci Merlin
    :bonjour:

    #53756
    Merlin
    Maître des clés

    y a t’il donc une balise pour changer le nom de fichier ?
    C’est ce que je cherche à faire, et non pas le titre du doc.

    ==> http://abracadabrapdf.net/forum/index.php/topic,1779.msg8903.html#msg8903

    :doute:  :joker:

    #53757
    jsamica
    Membre

    je suppose que tu me renvoi à ta réponse plus haut, du 18 octobre 2012 : 18:05
    J’ai compris ce principe par le biais de ton fichier exemple joint.
    Par contre ceci fonctionnant avec un bouton enregistrer sous et non pas avec la fonction maildoc

    Sinon il n’y a pas une fonction pour concaténer des champs existant du doc vers le nom du fichier joint dans le mail ? du genre nomfichier-champsnom-champsdate.pdf

    Mille Merci Merlin
    :Smiley03:

    #53758
    Merlin
    Maître des clés

    La fonction MailDoc envoie le document tel quel, avec son nom ==> il faut préalablement enregistrer-sous avant d’envoyer.
    Cela peut se faire avec un seul, ou bien avec deux boutons séparés.

    :Smiley01:

    #53759
    jsamica
    Membre

    OK merci
    Peux tu me dire stp quelle est la balise pour réaliser ce système avec un seule bouton ?

    :bonjour:

    #53760
    Merlin
    Maître des clés

    Et bien soit on place les deux scripts à la suite dans une seule “Action” JavaScript, soit on place les deux scripts dans 2 “Actions” qui se suivent, comme tu as fait dans ton dernier fichier d’exemple.

    :Smiley01:

    #53761
    jsamica
    Membre

    Salut Merlin,
    OK j’ai bien compris ça.
    Par contre y a t’il une balise js ? this.info… ?
    Ou alors tu es obligé de suivre la méthode précédemment indiquer à la fenêtre qui s’ouvre et copier coller les éléments ?

    Merci
    :Smiley03:

    #53762
    jsamica
    Membre

    J’ai trouvé sur la super doc (ironique) js api d’adobe cette instruction :

    Code:
    console.println(‘”The file name of this document is ‘
    + this.documentFileName +’.”‘);

    qui à priori ne fonctionne pas !
    Une idée ?

    Merci

    #53763
    Merlin
    Maître des clés

    Ca marche trop bien.
    (Exemple ci-joint)
    :Smiley03:

    Méfie toi de la doc JS d’Adobe : elle contient pas mal d’erreurs.
    Une qui a bien failli me rendre fou concerne la propriété readonly, dans la doc elle est notée readOnly
    (Avec une capitale)
    :oh:

    [attachment deleted by admin]

    #53764
    jsamica
    Membre

    Merci Merlin
    Ils sont forts ces éditeurs !!!  :mur:
    Merci pour l’info c’est effectivement le coup à passer des plombes sur un truc…

    :bonjour:

    #53765
    Merlin
    Maître des clés

    Le niveau de précision de ce type de document est forcément incompatible avec la dead-line de commercialisation d’un logiciel.
    Le résultat est affaire de compromis et il faut faire avec.

    :priere:

    #53766

    Bonjour,
    Désolé de réveiller ce vieux post.
    J’ai passé beaucoup beaucoup de temps à parcourir le forum (à l’aide de la fonction rechercher) afin de savoir si l’on peut automatiquement renommer le nom d’un formulaire (comme dans le script donné) mais sans passer par un copier coller.
    Merci

    #53767
    Merlin
    Maître des clés

    C’est possible mais il faut installer un script d’application dans chaque logiciel utilisé : sur toutes les machines et dans toutes les sessions utilisateurs.
    :Smiley01:

    #53768

    Donc pour moi ce ne sera pas concevable.
    Je vais toutefois utiliser ce script qui proposera à l’utilisateur la fonction copier coller.
    Merci

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