Donnez vie à vos documents numériques !
 

Tampon dateur dynamique choix date

abracadabraPDF Forums PDF – Général Tampon dateur dynamique choix date

  • Créateur
    Sujet
  • #71266
    jahsoldier
    Participant

    Bonjour,

     

    je cherche à créer un tampon dynamique avec un pop-up qui s’ouvre au moment de l’utilisation de la date. Je voulais m’inspirer de celui-existant sur pdf-x-change en utilisant le même code qui est ci-dessous :

    var DateDlg =
    {

    result: "cancel",
    DoDialog: function () { return app.execDialog(this); },
    //
    strDefFmt: "dd-mm-yyyy",
    strFmt: "dd/mm/yyyy",
    vDate: new Date,
    strDate: "",
    //
    SetListSel: function (list, path) {
    if (path.length == 0) return;
    eval("list[\"" + ((path.join != "function") ? path : path.join("\"][\"")) + "\"] = 1");
    },
    GetListSel: function (oLstResult) {
    for (var item in oLstResult) {
    if ((typeof oLstResult[item] == "number") && (oLstResult[item] > 0))
    return item;
    }
    return "";
    },
    formatDate: function (d, f) {
    return util.printd(f, d);
    },
    //
    initialize: function (dialog) {
    var fmt_list =
    {
    "dd/mm/yyyy": -1,
    "dd.mm.yyyy": -1,
    "mm-dd-yyyy": -1,
    "mm/dd/yyyy": -1,
    "mmm dd, yyyy": -1,
    "mmmm dd, yyyy": -1,
    "yyyy-mm-dd": -1,
    "ddd, mmmm d, yyyy": -1,
    "m/d/yyyy": -1,
    "dd.mm.yyyy HH:MM:ss": -1,
    "mm-dd-yyyy hh:MM:ss tt": -1,
    "HH:MM:ss": -1,
    "H:MM:ss": -1,
    "hh:MM:ss tt": -1,
    "h:MM:ss tt": -1,
    };
    this.SetListSel(fmt_list, this.strFmt);
    this.strDate = this.formatDate(this.vDate, this.strDefFmt);
    //
    var dlgInit =
    {
    "fmt1": fmt_list,
    "date": this.strDate,
    "prev": this.formatDate(this.vDate, this.strFmt),
    };
    dialog.load(dlgInit);
    },
    commit: function (dialog) {
    var oRslt = dialog.store();
    var path = new Array();
    this.strFmt = this.GetListSel(oRslt["fmt1"]);
    var d = oRslt["date"];
    if (typeof d == "string")
    d = util.scand(this.strDefFmt, d);
    if (d != null)
    {
    var cur = new Date;
    d = new Date(d.getFullYear(), d.getMonth(), d.getDate(), cur.getHours(), cur.getMinutes(), cur.getSeconds());
    }
    this.vDate = d;
    this.strDate = oRslt["date"];
    },
    // handlers
    "date": function (dialog) {
    this["fmt1"](dialog);
    },
    "fmt1": function (dialog) {
    var rslts = dialog.store();
    var sel = this.GetListSel(rslts["fmt1"]);
    this.strFmt = sel;
    var prev = "";
    var d = rslts["date"];
    if (typeof d == "string")
    d = util.scand(this.strDefFmt, d);
    if (d != null)
    {
    var cur = new Date;
    var dd = new Date(d.getFullYear(), d.getMonth(), d.getDate(), cur.getHours(), cur.getMinutes(), cur.getSeconds());
    prev = this.formatDate(dd, this.strFmt);
    }
    var l =
    {
    "prev": prev,
    };
    dialog.load(l);
    },
    //
    description:
    {
    name: "Specify Date",
    elements:
    [
    {
    type: "view",
    elements:
    [
    {
    type: "cluster",
    name: "Title",
    elements:
    [
    {
    type: "view",
    //align_children: "align_row",
    elements:
    [
    {
    item_id: "lbl1",
    name: "&Date (mm-dd-yyyy):",
    type: "static_text",
    },
    {
    item_id: "date",
    type: "edit_text",
    width: 150,
    DateEdit: true,
    },
    ]
    },
    {
    type: "view",
    // align_children: "align_row",
    elements:
    [
    {
    item_id: "lbl1",
    name: "&Format:",
    type: "static_text",
    },
    {
    item_id: "fmt1",
    type: "popup",
    width: 150,
    }
    ]
    },
    ]
    },
    {
    type: "cluster",
    name: "Result Preview",
    elements:
    [
    {
    item_id: "prev",
    name: "",
    alignment: "align_center",
    type: "static_text",
    char_width: 25,
    }
    ]
    },
    {
    type: "ok_cancel",
    },
    ]
    }
    ]
    }
    };
    if (event.source.forReal && (event.source.stampName == "#gFArg3CUa7QIU6ELF48e51"))
    {
    if (DateDlg.DoDialog() == "ok")
    {
    var d = DateDlg.vDate;
    event.value = util.printd(DateDlg.strFmt, d);
    }
    else
    {
    event.value = "Canceled!";
    }
    }
    else
    {
    var d = DateDlg.vDate;
    event.value = util.printd(DateDlg.strFmt, d);
    }

    Lorsque je lance la console il me dit qu’il y a un soucis avec la ligne suivante :

    if (event.source.forReal && (event.source.stampName == “#gFArg3CUa7QIU6ELF48e51”))

     

    j’imagine bien que c’est en rapport avec le nom du tampon mais je ne comprend pas trop comment faire pour le modifier et avoir un nom correct qui ferait que cela fonctionne correctement.

    Le but étant de mettre le champ dans un tampon créer pour l’occasion (ça j’arrive à faire par contre ^^)

     

    Merci d’avance pour l’aide que vous pourriez apporter à ce soucis.

     

    P.S : je précise que j’ai fait une recherche sur le forum ici et d’autres forums mais sans succès quand à une ébauche d’idée.

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

    Bonjour

     

    Je ne suis pas certain de tout comprendre, mais ce qui est certain c’est que sauf exception un script prévu pour fonctionner dans un tampon ne peut pas fonctionner dans la Console (et vice-versa) car ils ne sont pas exécutés dans le même contexte.

    Donc pour le tester il ne faut pas consoler, il faut tamponner.

    😎

    #71268
    bebarth
    Maître des clés

    bonjour,
    Exact ! Il faut tester ton script avec ton fichier tampon (dans le répertoire Stamps). La propriété forReal est vraie (true) lorsqu’un tampon (du fichier qui contient le ou les tampons) est placé sur le document et faux (false) à tout autre moment. event.source.stampName est la référence (générée par Acrobat) incluse dans le nom de la page modèle dans le fichier qui contient le ou les tampons. Cette référence (symbole # inclus) peut être modifiée du moment qu’elle l’est également dans le script.
    En cas de souci, peux-tu partager ton tampon ?

    @+
    😎

    • Cette réponse a été modifiée le il y a 1 année et 9 mois par bebarth.
    #71289
    jahsoldier
    Participant

    Bonjour,

    Je vous partage le tampon en pièce jointe (Edit, le fichier excède la taille autorisée, ça me semble bizarre)

    Je vous le met en lien du coup :

    https://www.swisstransfer.com/d/c946d140-39e1-4f08-a4b1-f55112de5426

    j’ai bien compris que je devais le tester en tampon mais quand je le fais rien ne se passe, le tampon reste vide au niveau du texte.

    Merci d’avance en tout cas et bonne fin de week-end.

     

    #71290
    bebarth
    Maître des clés

    bonjour,
    Il faut ajouter un symbole # avant la référence de ta page modèle, et c’est cette référence qu’il faut indiquer dans ton script.

    Attachments:
    You must be logged in to view attached files.
    #71293
    bebarth
    Maître des clés


    Après ça marche !

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #71295
    jahsoldier
    Participant

    Je vais sans doute passer pour un âne, mais je ne vois pas où je peux créer le modèle de page comme indiqué dans ton screenshot 😅

    bon il est tard je vais regarder ça un peu mieux demain matin mais merci en tout cas de t’être penché sur la question  et d’avoir pris le temps de répondre 🙂

     

    #71296
    bebarth
    Maître des clés

    bonjour,
    Pas besoin de le créer puisque Acrobat l’a fait pour toi ! Mais le nom a déjà été modifié vu que Acrobat crée le modèle de page avec un symbole #…
    Pour modifier l’intitulé, -> Outil “Organiser les pages” -> “Autre” -> “Modèles de page”. Puis tu rajoutes un # au début du nom et “Ajouter”. Acrobat va te demander si tu veux modifier le nom, tu réponds Oui.
    Ensuite, il faut utiliser “#gFArg3CUa7QIU6ELF48e51” dans ton script.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #71299
    jahsoldier
    Participant

    Ca fonctionne, un tout tout grand merci 😀

    Bonne journée

    #71301
    Merlin
    Maître des clés

    Le type qui a inventé le tampon dynamique devait haïr l’humanité.

    😎

    #71304
    bebarth
    Maître des clés

    Il y a quelques a années j’avais traduit en français l’article de Thom Parker :
    https://acrobatusers.com/tutorials/print/dynamic_stamp_secrets/
    Je l’ai remis en page il n’y a pas très longtemps si ça intéresse quelqu’un, je partage !

    @+
    😎

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