Donnez vie à vos documents numériques !
 

Enregistrer sous… avec concaténation de champs

abracadabraPDF Forums PDF – Général Enregistrer sous… avec concaténation de champs

  • Ce sujet contient 5 réponses, 3 participants et a été mis à jour pour la dernière fois par Merlin, le il y a 3 semaines.
  • Créateur
    Sujet
  • #74033
    tfx256
    Participant

    Bonjour

    Comme je n’ai pas de connaissance en Javascript pdf, voici ma demande d’aide
    Je voudrais générer automatique un nom de fichier en concaténant plusieurs champs séparés par une chaîne de caractères à l’occasion d’un Enregistrer sous…
    L’action serait déclenchée par un bouton que j’ai créé

    exemple les champs : “DATE” “NOM” “Prénom” “Lieu” et chaîne ” # ”
    donnerai le fichier : “DATE # NOM # Prénom # Lieu.pdf”

    Merci d’avance

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

    Bonjour

     

    Ce que tu souhaites faire est possible mais… si et seulement si ça vient d’un script d’application, ce n’est pas possible depuis un script de document.

    Un script d’application c’est un fichier .js qu’il faut placer dans le répertoire “Javascripts” d’Acrobat, et qui ensuite peut être appelé par un bouton placé dans un document.

    Pour les explications complètes voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/

     

    Donc tout dépend de comment et par qui sera utilisé ton document.

    #74036
    bebarth
    Maître des clés

    bonjour,
    …et si cela te convient, voici le script à placer dans le répertoire JavaScipt d’Acrobat. Tu peux nommer ce fichier comme il te convient. Pour mon exemple je l’ai nommé SaveAs_tfx256.js
    SaveAs_tfx256=app.trustedFunction(function(chemin) {
    app.beginPriv();
    this.saveAs({
    cPath: chemin,
    bCopy: true,
    bPromptToOverwrite: true
    });
    app.endPriv();
    })

    Et voici le script du bouton d’enregistrement. Ici on ne vérifie que les champs ne sont pas vide, mais on peut également vérifier si le champ DATE est bien une date et si les autres champs contiennent bien certains caractères. A noter que si le champ DATE contient des barres obliques “/” il faudra les remplacer ou supprimer pour ne pas perturber le chemin du fichier.
    if (this.getField("DATE").value!="" && this.getField("NOM").value!="" && this.getField("Prénom").value!="" && this.getField("Lieu").value!="") {
    try {
    SaveAs_tfx256(this.path.substr(0,this.path.lastIndexOf("/")+1)+this.getField("DATE").value+" # "+this.getField("NOM").value+" # "+this.getField("Prénom").value+" # "+this.getField("Lieu").value+".pdf");
    this.resetForm();
    } catch(e) {
    this.getField("leScript").display=display.visible;
    app.alert("Le fichier \"SaveAs_tfx256.js\" n'est pas installé sur cet ordinateur.");
    }
    } else app.alert("Les 4 champs doivent être remplis.",3);
    this.dirty=false;

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #74053
    tfx256
    Participant

    Bonjour,

    Merci pour le code, il fonctionne impeccable
    J’ai du formater la date en américain YYYY-MM-JJ pour supprimer les “/” et pour le classement dans l’explorateur.
    Les champs ont été rendu obligatoires pour éviter les problèmes…

    #74054
    bebarth
    Maître des clés

    bonsoir,

    J’ai du formater la date en américain YYYY-MM-JJ pour supprimer les “/” et pour le classement dans l’explorateur.

    Pour le classement, ce format est beaucoup plus adéquat que le format français…

    @+
    😎

    #74056
    Merlin
    Maître des clés

    J’ai du formater la date en américain YYYY-MM-JJ pour supprimer les “/” et pour le classement dans l’explorateur

    Juste une précision : le format américain c’est MM/JJ/YYYY

    Ce que tu utilises c’est le format ISO, ou format international, qui est effectivement le plus pratique à bien des égards.

     

    Format de date ISO

     

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