Donnez vie à vos documents numériques !
 

Stubiana

Toutes mes réponses sur les forums

Affichage de 42 réponses de 1 à 42 (sur un total de 42)
  • Auteur
    Réponses
  • Stubiana
    Membre

    Bonsoir,

    var Numero = getField(“Numero_ID”).valueAsString;
    getField(“Numero_ID_copie”).value = Numero;

    Tout simplement  :Smiley01:

    Stubiana
    Membre

    Bonjour Maxime,

    Donc je suppose que tu as 4 champs de formulaire contenant le nombre d’enfants pour chaque catégorie d’âge
    Voici un petit script à mettre dans Propriétés => Calcul => Script de calcul personnalisé d’un 5ème champ que j’ai appelé “Accompagnateurs”

    Code:
    var ratio1 = 3  // le ratio pour les enfants de moins de 2 ans
    var ratio2 = 3  // le ratio pour les enfants de 3 à 5 ans
    var ratio3 = 6  // le ratio pour les enfants de 6 à 13 ans
    var ratio4 = 15    // le ratio pour les enfants de 14 ans et plus
    this.getField(“Accompagnateurs”).value =
    Math.ceil(this.getField(“- de 2 ans”).value / ratio1) +
    Math.ceil(this.getField(“3 à 5 ans”).value / ratio2) +
    Math.ceil(this.getField(“6 à 13 ans”).value / ratio3) +
    Math.ceil(this.getField(“14 ans et plus”).value / ratio4)

    Les valeurs “- de 2 ans”, “3 à 5 ans”, etc.. dans le getField() sont à remplacer par les noms que tu as donné à tes champs.

    En espérant t’avoir aidé  :Smiley01:

    Stubiana
    Membre
    Code:
    var a = “P” + (numPages- 1).toString() + “.CS patho.Texte4”;
    this.getField(a).value = Math.floor(numPages/2) + 1;

    Par contre il faudra penser à ajouter les résultats de la précédente consultation AVANT de créer une nouvelle consultation, sinon cela fausse le calcul.

    Cordialement  :bonjour:

    Stubiana
    Membre

    Pour ta question 2, il suffit de rajouter ce code sur ton champ liste, en tant que format personnalisé :

    Code:
    if (event.target.value == “RAS”)
    event.target.textColor = color.black;
    else
    event.target.textColor = color.red;

    Pour la dernière question, je t’invite à aller voir le post de djamel : http://abracadabrapdf.net/forum/index.php/topic,2184.0.html, son fichier contient en partie la réponse à ta question (sachant que la méthode est la même que le champ soit un champ de texte ou un champ liste)

    Cordialement  :bonjour:

    Stubiana
    Membre

    Bonjour,

    Remplace ton script de calcul personnalisé par :

    Code:
    var one = this.getField(“fill_12”);
    var two = this.getField(“fill_10”);
    var three  = this.getField(“fill_7”);
    if (one.value == ’04 CV’|| one.value == ’05 CV’|| one.value == ’06 CV’||
    one.value == ’07 CV’||
    one.value == ’08 CV’)
    {
        two.value=’C.I’
        three.value=’V.P’
        two.readonly = true;
        three.readonly = true;
    }
    else if (one.value != ” “)
    {
        two.readonly = false;
        three.readonly = false;
    }
    else
    {
        two.readonly = true;
        three.readonly = true;
    }

    Cordialement  :bonjour:

    Stubiana
    Membre

    Tout de suite c’est plus explicite  :Smiley08:

    Rajoute ça à la suite de ton code sur ton bouton “Nouvelle consultation” :

    Code:
    var a = “P” + (numPages-1).toString() + “.CS patho.Texte4”;
    this.getField(a).value = numPages;

    Cordialement  :bonjour:

    Stubiana
    Membre

    Bonjour,

    Qu’entends-tu par “dupliquer” ? J’ai beau chercher mais… le mode Template ?  :Euuuh:

    Stubiana
    Membre

    Ta matrice ? Tu parles du contenu de ton document ?

    Avec quel logiciel as-tu dupliqué ton document ?

    Cordialement

    Stubiana
    Membre

    Bonjour,

    Peut être en essayant comme ça ? :

    Code:
    var myPrefix = event.target.name.substring(0,event.target.name.indexOf(‘Texte9’));
    var p = this.pageNum;
    var A = (p+1)*0.5;
    this.getField(myPrefix + ‘ Texte9’).value = A;

    Pour le reste je m’y pencherai lorsque j’aurai un peu plus de temps  :Smiley03:

    Cordialement  :bonjour:

    Stubiana
    Membre

    Bonjour,

    Si tu ne veux aucune interaction avec l’utilisateur, le JavaScript seul ne te permettra pas cela. En effet, les scripts JavaScript, ou du moins ceux spécifiques à Adobe, ont besoin d’un trigger pour être exécutés (lancement à la main, ouverture du document, etc…).
    Il te faudra donc toucher aux lignes de commande de Windows et je suis désolé mais ne travaillant pas sous Windows, je ne vais pas pouvoir t’aider sur ce coup là  :Smiley11:

    Cordialement  :bonjour:

    en réponse à : Validation de deux champs. – RÉPONDU #55568
    Stubiana
    Membre

    Bonjour,

    Place ce script sur ton bouton, en action “Souris enfoncée” :

    var champ1 = this.getField(“champ1”);
    var champ2 = this.getField(“champ2”);

    if (champ1.value == “” && champ2.value == “”)
    {
          app.alert(“Merci de saisir votre nom de champ1 et champ2”);
    }
    else if (champ1 != “Bonjour” && champ2 != “Bonsoir”)
    {
          app.alert(“Vos champs champ1 et champ2 ne sont pas valides !”);
          champ1.value = “”;
          champp2.value = “”;
    }
    else if (champ1 != “Bonjour”)
    {
          app.alert(“Votre champ champ1 n’est pas valide !”);
          champ1.value = “”;
    }
    else if (champ2 != “Bonsoir”)
    {
          app.alert(“Votre champ champ2 n’est pas valide !”);
          champ2.value = “”;
    }
    else
    {
        app.alert(“Valide !”);
        // action à effectuer si valide
    }

    Cordialement  :bonjour:

    Stubiana
    Membre

    Bonjour djamel,

    Sur ton champ Text1 sur l’action “Champ désactivé”, il suffit de placer ce script :
    this.getField(“Text2”).value = event.target.value;

    Cordialement  :bonjour:

    Stubiana
    Membre

    Une solution un peu lourde mais efficace serait de mettre le code comme format personnalisé pour chacun des champs que l’utilisateur va remplir.

    Petit rappel, les scripts insérés au niveau du document ne seront exécutés qu’une fois à l’ouverture du formulaire.

    Cordialement  :bonjour:

    en réponse à : Faire apparaître un bloc de texte. – RÉPONDU #55518
    Stubiana
    Membre

    Bonjour, cette action est tout à fait possible oui, il suffit :
    -d’ajouter un champ de texte à l’endroit désiré, et de le mettre en lecture seule et invisible à l’écran par défaut
    -de faire un clic droit sur le bouton, Propriétés > Actions, puis “Afficher/Masquer un champ” sur l’action “Souris enfoncée”
    -de sélectionner “Afficher” et le nom du champ de texte dans la liste qui sera apparue

    Cordialement  :bonjour:

    Stubiana
    Membre

    Bonjour,

    Code:
    var f = this.getField(“typelicen”);

    var type = f.getItemAt(f.currentValueIndices, false);

    var handicape = this.getField(“travhandi”).isBoxChecked(0);

    var anciennete = this.getField(“anciennete”).value;

    if (type == “Faute grave” || type == “Inaptitude classique” || type == “Rupture conventionnelle”)
    {
        this.getField(“dureepreavis”).value = “Pas de Préavis”;
    }
    else
    {
        if (handicape)
        {
    if (anciennete < 0.6)
    {
    this.getField(“dureepreavis”).value = “2 Semaines”;
    }
    else if (anciennete >= 0.6 && anciennete <= 2)
    {
    this.getField(“dureepreavis”).value = “2 Mois”;
    }
    else
    {
    this.getField(“dureepreavis”).value = “3 Mois”;
    }
        }
        else
        {
    if (anciennete < 0.6)
    {
    this.getField(“dureepreavis”).value = “1 Semaine”;
    }
    else if (anciennete >= 0.6 && anciennete <= 2)
    {
    this.getField(“dureepreavis”).value = “1 Mois”;
    }
    else
    {
    this.getField(“dureepreavis”).value = “2 Mois”;
    }
        }
    }

    A insérer où tu le souhaite  :Smiley03:

    Cordialement  :bonjour:

    Stubiana
    Membre

    Met plutôt le code sur ta case à cocher, lorsqu’elle est décochée tu cache tout les champs :

    Code:
    if (this.getField(“CFCheck”).isBoxChecked(0))
    {
    this.getField(“ListeCF”).display = display.visible;
    }
    else
    {
    this.getField(“ListeCF”).display = display.hidden;
    this.getField(“1”).display = display.hidden;
    this.getField(“2”).display = display.hidden;
    this.getField(“3”).display = display.hidden;
    this.getField(“4”).display = display.hidden;
    this.getField(“5”).display = display.hidden;
    this.getField(“6”).display = display.hidden;
    this.getField(“7”).display = display.hidden;
    this.getField(“8”).display = display.hidden;
    this.getField(“9”).display = display.hidden;
    this.getField(“10”).display = display.hidden;
    this.getField(“11”).display = display.hidden;
    this.getField(“12”).display = display.hidden;
    this.getField(“13”).display = display.hidden;
    this.getField(“14”).display = display.hidden;
    this.getField(“15”).display = display.hidden;
    this.getField(“16”).display = display.hidden;
    this.getField(“17”).display = display.hidden;
    this.getField(“18”).display = display.hidden;
    this.getField(“19”).display = display.hidden;
    this.getField(“20”).display = display.hidden;
    }

    Initialisation();

    Chez moi ça marche  :Smiley03:

    Cordialement  :bonjour:

    Stubiana
    Membre

    Serait-il possible de mettre ton fichier en pièce jointe ? N’ayant pas la totalité du code sous les yeux je ne peux pas me rendre compte de ce qui cloche.

    Merci  :bonjour:

    Stubiana
    Membre

    je pense que c’est tout simplement dû à une erreur d’écriture, il faut écrire “display.hidden” et non pas seulement “hidden” dans ton if :Smiley03:

    Cordialement  :bonjour:

    Stubiana
    Membre

    Je ne sais pas si ça peut résoudre le problème mais en tout cas ton code comporte des erreurs de syntaxe :

    – L’opérateur == effectue un test d’égalité, il renvoie un booléen (true ou false) qui indique si le le test est correct ou non (par exemple 0 == 0 renverra true puisque 0 est bien égal à 0, mais 1 == 0 renverra false)

    – L’opérateur = effectue une affectation, c’est-à-dire qu’il donne la valeur à une variable (par exemple après le code a = 0; a vaudra 0)

    Dans ton deuxieme code, tu utilise une affectation dans ton if, donc le programme ne va pas tester si le champ est caché, il va le RENDRE caché.
    De même, ligne d’en dessous, le programme ne va pas mettre la valeur de la liste à 0, il va TESTER si elle est égale à 0, et renverra true ou false.

    Une correction serait donc :

    Code:
    if (this.getField(“ListeMSD”).display == hidden);
    {
    this.getField(“ListeMSD”).value = “0”
    }

    Cordialement  :bonjour:

    Stubiana
    Membre

    Oui, cette méthode ne marche qu’avec les nombres, après il y aura d’autres méthodes plus compliqué qui dépendent des noms de tes champs :

    – Si tes noms de champ sont “1”, “2”, “3”, …., une boucle simple fera l’affaire

    – Si tes noms de champs sont un chiffre suivi d’un texte, il faudra concaténer les deux, par exemple :

    Code:
    for (var i = 2 ; i<= 20 ; i++)
    {
    this.getField(i+”B”).display = hidden;
    }

    – Si ce n’est que du texte… :joker:

    Cordialement  :bonjour:

    en réponse à : Calcul date à date. – RÉSOLU #55493
    Stubiana
    Membre

    Tu as simplement oublié d’insérer la fonction diffdate aux scripts du document  (Outils > javascript > Scripts Javascript du document) :Smiley03:

    Code:
    function diffdate(d1, d2)
    {
        var jour = Math.abs(d1.getTime() – d2.getTime());
        return Math.floor(jour/(1000*60*60*24));
    }

    Cordialement  :bonjour:

    en réponse à : Calcul date à date. – RÉSOLU #55491
    Stubiana
    Membre

    C’est à cause de “datearrivee”  :Smiley05:

    Des fois tu as écris “datearrivee” et des fois “datearrive”  :geek:

    Cordialement  :bonjour:

    Stubiana
    Membre

    Pour ton problème de getField, si les valeurs se suivent, tu peux utiliser une boucle :

    Remplace :

    Code:
    this.getField(“2″;”3″;”4″;”5″;”6″;”7″;”8″;”9″;”10″;”11″;”12″;”13″;”14″;”15″;”16″;”17″;”18″;”19″;”20”).display = display.hidden;

    par

    Code:
    for (var i = 2 ; i<=20 ; i++)
    {
    this.getField(i).display = hidden;
    }

    Pour rajouter du texte tu peux simplement ajouter un nouveau champ de texte, et le mettre en lecture seule pour que personne ne puisse le modifier  :Smiley03:

    Cordialement  :bonjour:

    en réponse à : Calcul date à date. – RÉSOLU #55489
    Stubiana
    Membre

    C’est simplement dû à une petite erreur de ma part, essaye avec ça dans l’exemple 2 :

    if (event.target.value != “”)
    {
        var date_depart = util.scand(“dd/mm/yyyy”, event.target.value);
        var date_arrivee = util.scand(“dd/mm/yyyy”,this.getField(“datearrivee”).value);
        this.getField(“anciennete”).value = diffdate(date_depart, date_arrivee);
    }
    else
    {
        this.getField(“anciennete”).value = “”;
    }

    Cordialement  :bonjour:

    en réponse à : Calcul date à date. – RÉSOLU #55487
    Stubiana
    Membre

    Merci, simplement un nombre années/jours entre les 2 dates

    La fonction calcule simplement le nombre de jours mais pas le nombre d’années (il suffit de diviser le nombre de jours par 365 pour avoir le nombre d’années)

    Par contre, as-tu un exemple concret; s’il te plaît.
    Je comprend pas trop comment tu l’implémentes dans ton formulaire.

    Tu l’ajoutes dans un champs à script de calcul personnalisé ?
    Tu définis avant tes variables d1 et d2 genre :
    d1 = this.getField(“date1”).value;

    Tout dépend de l’utilisation que tu vas faire de cette fonction.
    Le mieux est de l’ajouter aux scripts du document, comme ça tu pourras l’utiliser simplement en l’appelant, depuis n’importe quel champ.

    Bien sur il faut définir les paramètres que tu vas passer à ta fonction. Prenons un exemple :

    Tu as un champ “Date d’arrivée”, et tu souhaiterais connaitre l’ancienneté de la personne, qui sera affichée dans un autre champ appelé “Ancienneté”.
    On suppose au départ que “Date d’arrivée” est vide, donc “Ancienneté” l’est aussi.
    Lorsque l’utilisateur entrera une date dans le champ “Date d’arrivée”, “Ancienneté” sera mis à jour.

    Il te suffit donc d’ajouter ce script d’action dans le champ “Date d’arrivée” sur l’action “Champ désactivé” :

    if (event.target.value != “”)
    {
        this.getField(“Ancienneté”).value = diffdate(event.target.value, new Date());
    }
    else
    {
        this.getField(“Ancienneté”).value = “”;
    }

    De cette façon, lorsque l’utilisateur entrera une date et passera au champ suivant, “Ancienneté” sera mis à jour  :Smiley01:

    :fleche: Attention : “Date d’arrivée” doit être au format Date, sinon ça ne marchera pas.

    J’espère être assez clair  :siffle:

    Cordialement  :bonjour:

    Stubiana
    Membre

    Or, dans la liste des caméras ils choisissent quel modèle : A, B ou C.

    C’est de cette liste que je parle, donc je suppose que tu ne l’a pas encore créée.

    Je pense que le mieux est de créer ton fichier sous Open Office, en y incluant tout le texte de ton formulaire, et en laissant des espaces à l’emplacement des champs, puis d’exporter ce fichier au format PDF.
    Une fois fait, tu l’ouvre avec Acrobat, tu cliques sur Créer un formulaire, A partir d’un document existant, et Document Actif.

    Lorsque tu aura fait ça, préviens nous qu’on puisse commencer à voir cette histoire de liste.  :Smiley03:

    Cordialement.  :bonjour:

    en réponse à : Calcul date à date. – RÉSOLU #55485
    Stubiana
    Membre

    Bonjour,

    Pour être précis, tu aurais simplement besoin du nombre de jours ? Ou aussi des heures minutes secondes ?

    Une petite fonction au cas où, elle renvoie le nombre de jours entiers écoulés entre 2 dates.

    function diffdate(d1, d2)
    {
        var jour = Math.abs(d1.getTime() – d2.getTime());
        return Math.floor(jour/(1000*60*60*24));
    }

    Cordialement  :bonjour:

    Stubiana
    Membre

    Avec Acrobat, c’est très simple.

    Clic droit sur ta liste > Propriétés > Action > Le déclencheur sera “Souris enfoncée” et l’action “Afficher/Masquer un champ” > Ajouter > Tu choisis le champ qui va contenir le numéro de la caméra et tu coche Afficher  :Smiley01:

    Pour que ton champ soit par défaut caché avant que le caméraman clique sur la zone de liste, Clic droit sur le champ > Propriétés > Général > Tu remplaces “Visible à l’écran” par “Invisible à l’écran”

    N’hésite pas si tu as besoin de plus de renseignements

    Cordialement  :bonjour:

    Stubiana
    Membre

    :joker:

    Je ne m’y connais pas du tout en script OpenOffice, mais je pense qu’il serait beaucoup, beaucoup plus simple de faire ça avec Adobe Acrobat (si tu le possède) et dans ce cas là je pourrais t’aider  :Smiley01:

    Cordialement

    Stubiana
    Membre

    :bravo:

    Merci beaucoup!  :bonjour:

    Stubiana
    Membre

    Et bien justement, je ne trouve pas de fonction ou méthode Javascript qui me permettrait de modifier la propriété “Format” d’un champs, à moins d’avoir mal cherché  :Ooops:

    Merci :bonjour:

    en réponse à : Enregistrement PDF via imprimante virtuelle. – RÉPONDU #55425
    Stubiana
    Membre

    Bonjour,

    Comme a dit très justement mon voisin du dessus, quelle sera l’utilité de tous ces changements de format ?
    Cela nous aiderait beaucoup pour répondre à la question  :siffle:

    Cordialement  :bonjour:

    Stubiana
    Membre

    Oui ça aurait été la meilleure solution si j’avais écris ce script au début de la création du formulaire, je l’aurais placé dans mon premier champ et j’aurais fait un simple copier/coller.
    Mais malheureusement tout mon formulaire est déjà fait, et remplacer un par un tout mes champs de nombre me prendrait je pense plus de temps que copier/coller le script.  :Smiley02:

    Pour reformuler ma question, n’y aurait-il pas un moyen d’appliquer un format personnalisé à plusieurs champs déjà présents dans le formulaire, et ce en une seule fois ?

    Merci. :priere:

    en réponse à : Menu création signet. – RÉSOLU #52532
    Stubiana
    Membre

    Bonjour bebarth,

    La fonction createChild peut prendre 3 paramètres

    Copier/coller de la doc JS :

    cName
    The name of the bookmark that the user sees in the navigation panel.

    cExpr
    (optional) An expression to be evaluated whenever the user clicks the bookmark. It is equivalent to creating a bookmark with a JavaScript action, as described in the PDF Reference version 1.7. The default is no expression.

    nIndex
    (optional) The 0-based index into the children array of the bookmark at which to create the new child. The default is 0.

    Le 3eme paramètre, nIndex, détermine la position du signet par rapport à son parent, il te suffit donc de mettre en paramètre le nombre de signets de ton document, et il sera placé en dernière position.

    Ce qui donne:
    this.bookmarkRoot.createChild(“Dernière page”, “”, this.bookmarkRoot.children.length);

    Cordialement.  :bonjour:

    en réponse à : Modifier le format de la date. – RÉSOLU #55416
    Stubiana
    Membre

    Mais de rien  :bonjour:

    en réponse à : Modifier le format de la date. – RÉSOLU #55414
    Stubiana
    Membre

    Bonjour,

    Si je comprend bien, ton utilisateur entre une date au format aaaa/mm/jj, et tu veux qu’elle apparaisse sous la forme jj/mm/aaaa ?

    Si oui, voila un script à placer dans Format > Personnalisée > Script de format personnalisé :

    var d = util.scand(“yyyy/mm/dd”, event.value);  //récupère la date entrée au format aaaa/mm/jj
    if (d != null)  // si la date entrée est valide, on modifie son format
    {
          event.value = util.printd(“dd/mm/yyyy”, d);
    }
    else 
    {
          app.alert(“Date au mauvais format, entrez une date sous la forme aaaa/mm/jj”);  // sinon on affiche un message d’erreur
    }

    J’espère avoir répondu à la question  :Smiley03:

    Cordialement

    en réponse à : Interdire l’enregistrement d’un PDF éditable. – RÉPONDU #55394
    Stubiana
    Membre

    Bonjour,

    Je ne connais pas assez bien Acrobat XI, mais Merlin a répondu à ta question dans son précédent message :

    Bonjour.

    Non. Que le PDF soit éditable ou pas n’y change rien.

    En conclusion : It’s not possible / Non è possibile

    Cordialement

    Stubiana
    Membre

    Bonjour paquerette,

    Où as-tu placé ce script ? Sur le bouton ? Sur le champs adresse mail ?

    Si ton script marche bien mais qu’il faut simplement enlever les espaces, essaye ça :

    function suppr_space(chaine)
    {
          var resultat=””;
          for (var i=0;i      {
                  if (chaine.charCodeAt(i) != 32)
                        resultat = resultat + chaine.charAt(i);
          }
          return resultat;
    }

    event.value = event.target.value.toLowerCase();
    str = event.value;
    event.value = str.replace(/(^|s|[-,.])w/g,function(cWrd){return cWrd.toLowerCase()});

    var f = this.getField(“Texte12”);
    f.value = suppr_space(this.getField(“Texte4”).value)
    + “.” + suppr_space(this.getField(“Texte5”).value)
    +”@free.fr”;
    ;
    var r = ‘/(é|É|è|È)/g’;
    var str = event.change;
    var match = str.match(eval(r));
    if (match)
    {
      event.change = “e”;
    }

    Cordialement

    Stubiana
    Membre

    Je génère automatiquement dans acrobat formulaire l’adresse email ci jointe ex :”jean claude.de britigny sur orge”

    Je ne comprend pas trop, l’exemple n’est pas une adresse email  :Euuuh:

    Sinon voila la fonction qui renvoie une chaine de caractère dont les espaces ont été remplacés par des points:

    function suppr_space(chaine)
    {
          var resultat=””;
          for (var i=0;i      {
                  if (chaine.charCodeAt(i) == 32)
                        resultat = resultat + “.” ;
                  else
                        resultat = resultat + chaine.charAt(i);
          }
          return resultat;
    }

    Cependant je ne vois pas l’utilité de faire ça pour créer une adresse email, si tu veux la créer à partir du nom et du prénom tu n’a qu’à concaténer les 2 champs en les séparant par un point, puis en ajoutant le FAI après, ex :

    var nom = this.getField(“Nom”).value;
    var prenom = this.getField(“Prenom”).value;
    var adresse = prenom + “.” + nom + “@free.fr”;

    Cordialement

    Stubiana
    Membre

    1- OK mais ce sont des branques

    Je n’ai jamais dit le contraire  :siffle:

    En tout cas merci beaucoup pour toutes ces réponses, je vais enfin pouvoir mettre en ligne mes formulaires  :extra:

    Stubiana
    Membre

    1- Le copier/coller signifierait qu’il devrait switcher en permanence entre le PDF et le logiciel, apparement cette solution ne plait pas au service concerné (et je n’ai pas mon mot à dire là dessus)

    2- Si l’utilisateur envoie le formulaire par mail, lorsqu’on le reçoit et qu’on l’ouvre, on peut toujours modifier les champs, et cela pose un problème au service juridique de la boite…

    3- Oui j’avais déjà pensé à mettre les champs en lecture seule + rajouter un mot de passe qui empèche la modification avec Acrobat X Pro, comme ça seuls les détenteurs du mot de passe pourront modifier le PDF.  :Smiley01:

    De plus mon client n’a plus le message d’erreur à l’ouverture, je ne sais vraiment pas d’où ça venait mais en tout cas c’est parti  :Smiley08:

    Une dernière question mais qui n’a pas vraiment de rapport, je ne sais pas si je dois ouvrir un nouveau sujet pour ça :
    Lorsque mon utilisateur clique sur le bouton pour verrouiller le PDF, je lui propose d’enregistrer la version modifiable s’il veut la réutiliser ultérieurement. J’utilise donc app.execMenuItem(“SaveAs”);
    Il m’affiche alors la fenetre d’enregistrement, là où l’utilisateur peut entrer le nom de son nouveau fichier. Par défaut, le nom écrit est le nom du fichier actuel, j’aimerais savoir s’il est possible de modifier ce nom, par exemple nom_du_fichier+”_modifiable”, pour que l’utilisateur ne risque pas d’écraser l’ancien fichier.

    Un petit screen ci-joint pour expliciter ma demande.

    Merci beaucoup  :soleil:

    [attachment deleted by admin]

    Stubiana
    Membre

    Merci de cette réponse rapide  :Smiley01:

    Je ne comprend pas pourquoi ils devraient faire ça…  :doute: :Euuuh:
    Mais s’ils le font on est assuré de perdre les droits étendus.

    En fait nous n’avons toujours pas implémenté de gestion automatique des données recueillies, ce qui veut dire en gros que lorsqu’on reçoit un PDF rempli, on doit retaper toutes les informations à la main dans un logiciel spécifique (mais le sujet n’est pas d’actualité, ça ne sera pas fait avant quelques temps  :mur:).
    Du coup j’ai simplement besoin que le client renvoie un document PDF totalement non-modifiable, en gros une image quoi, de sorte à ce que ni nous ni une personne tierce puisse de nouveau modifier les champs du formulaire.
    :fleche: donc imprimer le formulaire via une imprimante virtuelle et nous envoyer la copie.

    Si j’ai bien compris, lorsqu’ils imprimeront via cette imprimante virtuelle (je cite PDF Creator car gratuit mais il existe aussi Adobe PDF, etc.), le formulaire perdra ses droits étendus ?

    Le problème dont tu parles ne se pose que si plusieurs intervenants utilisent le même formulaire avec différentes versions de Reader.
    Si chacun reçoit un formulaire qu’il est seul à remplir : pas de problème.

    :extra: mais alors pourquoi ce message d’erreur à l’ouverture ? Est-ce dû au Javascript qui modifie le PDF à l’ouverture ?

    Ce que tu peux faire pour contourner le problème c’est de diffuser ton formulaire avec Acrobat via Acrobat.com, ainsi les destinaires recoivent un lien vers un formulaire en ligne, qu’ils peuvent remplir en plusieurs fois, et qui te débarrasse de tous ces problèmes de compatibilité.
    Et ça facilitera la collecte des données.

    Du coup avec cette méthode, le client peut-il enregistrer sa saisie sous forme d’un PDF non modifiable ?

    Merci encore pour tes réponses  :Smiley01:

Affichage de 42 réponses de 1 à 42 (sur un total de 42)