Donnez vie à vos documents numériques !
 

bebarth

Toutes mes réponses sur les forums

Affichage de 99 réponses de 2,377 à 2,475 (sur un total de 3,389)
  • Auteur
    Réponses
  • bebarth
    Maître des clés

    bonjour,
    Voici une action que j’ai écrite pour pouvoir imprimer tes pages centrées sur un format A4.
    On pourrait l’adapter pour avoir des marges intérieures et extérieures différentes si le texte prenait plus de place, comme le note Merlin.
    C’est peut-être « un peu long » (45 secondes pour les 7 pages sur un Mac Pro 3,2 GHz Quad-Core) car sur chaque page je vérifie la position de tous les mots pour connaitre exactement les marges autour texte.
    Je ne vois pas comment faire autrement… La position du premier et du dernier mot donnerait (peut-être) la position verticale, mais pour la position horizontale…
    @+
    :bonjour:

    en réponse à : exportAsText() #64579
    bebarth
    Maître des clés
    en réponse à : Formulaire liste mère-fille ? #64574
    bebarth
    Maître des clés

    Avec quelle version d’Acrobat as-tu un souci.
    Je n’ai pas de problème avec Acrobat Pro DC.
    Sinon, tu peux essayer (mais je ne sais pas si ça fonctionne) de mettre ton script en pièce jointe et de le rappeler avec :

    Code:
    var oFile=this.getDataObjectContents(« monFichier.js »);
    var cFile = util.stringFromStream(oFile, « utf-8 »);

    https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_getDataObjectContentsbc-43&rhtocid=_6_1_8_23_1_42

    …à essayer !
    @+
    :bonjour:

    bebarth
    Maître des clés

    Eh bien on peut exporter les valeurs des champs dans un fichier texte si cela t’intéresse.
    https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm
    @+
    :bonjour:

    en réponse à : Formulaire liste mère-fille ? #64572
    bebarth
    Maître des clés

    Désolé, mais je ne sais personnellement pas écrire les tables Javascript telles qu’elles le sont dans ton fichier Initialisation.
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,
    Ce qui est certain, c’est que ce que tu as indiqué n’est pas une ligne de code JavaSript et ne peut donc pas être interprété avec Acrobat.
    C’est apparemment une ligne de code sous Unix !
    Que cherches-tu à faire exactement ?
    @+
    :bonjour:

    en réponse à : Formulaire liste mère-fille ? #64570
    bebarth
    Maître des clés

    bonjour,


    N’hésitez pas à demander si je suis pas assez clair.

    Alors oui j’ai trouvé comment rentrer du vide …

    Je ne comprends rien ! C’est quoi rentrer du vide ???

    Lorsque tu postes une réponse, si tu as une autre question plus tard, il ne faut pas modifier ton premier poste mais faire une autre réponse sinon les personnes qui suivent ton sujet ne sont pas averties de ta modification de poste.
    @+
    :bonjour:

    en réponse à : Formulaire liste mère-fille ? #64568
    bebarth
    Maître des clés

    Il y a également un script d’action d’ouverture de page !
    En effet // correspond à une annotation et la ligne n’est pas prise en compte. On peut dupliquer une ligne , ajouter // à la ligne originale et tester une modification. On n’a pas perdu la première ligne !
    @+
    :bonjour:

    en réponse à : Formulaire liste mère-fille ? #64566
    bebarth
    Maître des clés

    As-tu copié les 3 scripts de document et les scripts de touche personnalisés des ListeNiveau1 et ListeNiveau2 ?
    Sinon, peux-tu partager ton fichier ?
    @+
    :bonjour:

    en réponse à : Formulaire liste mère-fille ? #64564
    bebarth
    Maître des clés

    bonjour,
    Il faut que tu regardes et adaptes le script de document.
    Voici le fichier d’Alex adapté à ce que j’ai cru comprendre.
    @+
    :bonjour:

    en réponse à : Une lettre = une couleur #64563
    bebarth
    Maître des clés

    bonsoir,
    Je viens d’écrire un petit script pour changer automatiquement la couleur des caractères V, N, D et -.
    A mettre en script d’action de champ désactivé !

    Code:
    var leTexte = this.event.target.value;
    var leTexte = leTexte.replace(/V/gi, « ,VERT, »);
    var leTexte = leTexte.replace(/N/gi, « ,ORANGE, »);
    var leTexte = leTexte.replace(/D/gi, « ,ROUGE, »);
    var leTexte = leTexte.replace(/-/gi, « ,BLEU, »);
    var leTexte = leTexte.replace(/,,/gi, « , »);
    var n = leTexte.charAt(0);
    var nn = leTexte.charAt(leTexte.length-1);
    if (n!= », ») {
        var debut = 0;
    } else {
        var debut = 1;
    }
    if (nn!= », ») {
        var fin = 0;
    } else {
        var fin = 1;
    }
    var laChaine = leTexte.substring(debut,leTexte.length-fin);
    var chaine = laChaine.split(« , »);
    var spans = new Array();
    for (var i=0; i    var texte = chaine;
        switch (texte) {
            case « VERT »:
            var txtSpan= »V »;
            var colSpan=color.green;
            break;
            case « ORANGE »:
            var txtSpan= »N »;
            var colSpan=[« CMYK », 0,0.35,0.85,0];
            break;
            case « ROUGE »:
            var txtSpan= »D »;
            var colSpan=color.red;
            break;
            case « BLEU »:
            var txtSpan= »-« ;
            var colSpan=color.blue;
            break;
            default:
            var txtSpan=texte;
            var colSpan=color.black;
        }
        spans = new Object();
        spans.text = txtSpan;
        spans.textColor = colSpan;
    }
    this.event.target.richValue = spans;

    @+
    :bonjour:

    en réponse à : Impression de pages précises de plusieurs fichiers pdf #64505
    bebarth
    Maître des clés

    …peut-être ce week-end ou lundi !
    J’ai modifié le fichier « Imprimer les Fichiers.pdf » précédemment posté pour indiquer les champs à remplir. Ce n’était peut-être pas évident pour tout le monde.
    @+
    :bonjour:

    en réponse à : Impression de pages précises de plusieurs fichiers pdf #64503
    bebarth
    Maître des clés

    Pour ce script, il n’y avait qu’à assembler des morceaux d’autres scripts que j’avais déjà écris et à essayer le résultat avec Adobe Reader.
    Ça a fonctionné PRESQUE du premier coup !
    @+
    :bonjour:

    en réponse à : Impression de pages précises de plusieurs fichiers pdf #64501
    bebarth
    Maître des clés

    bonjour,
    Voici donc ce qu’il faut faire :

    • Télécharger et décompresser le fichier « Impression de pages pre?cises_BB.zip » ci-joint.
    • Placer le fichier « ImpressionPerso.js » dans le répertoire JavaScript d’Adobe Reader (je ne sais pas où il se trouve sous Windows).
    • Placer tous les fichers à imprimer dans le répertoire « Imprimer ces Fichiers ». Attention, le répertoire « Imprimer ces Fichiers » et le fichier « Imprimer les Fichiers.pdf » doivent se trouver dans le même répertoire.
    • Ouvrir le fichier « Imprimer les Fichiers.pdf » et renseigner les différents champs. Ne pas oublier d’indiquer les noms des fichiers à imprimer…
    • Appuyer sur le bouton »IMPRIMER ».
    • [/list]Tu me dis s’il y aurait des adaptations à faire.
      @+
      :bonjour:

    en réponse à : Impression de pages précises de plusieurs fichiers pdf #64500
    bebarth
    Maître des clés

    Merci pour l’utilitaire Merlin !

    En fait, je souhaiterais pouvoir imprimer les pages 1 à 3 d’une quarantaine de fichiers pdf (ou par exemple la page 4 de tous ces fichiers), sans avoir à lancer les impressions une par une.

    Tous ces fichiers sont-ils groupés dans un même répertoire ou dispersés à droite à gauche !
    @+
    :bonjour:

    en réponse à : Impression de pages précises de plusieurs fichiers pdf #64498
    bebarth
    Maître des clés

    Oui pour moi, mais je suppose qu’Adobe Reader reste Adobe Reader même avec la console et que certaines commandes JavaScript ne fonctionnent pas !
    Correct ?
    @+
    :bonjour:

    en réponse à : Impression de pages précises de plusieurs fichiers pdf #64496
    bebarth
    Maître des clés

    bonjour,
    Je n’avais pas Adobe Reader installé depuis bien des années. Les scripts que j’écris sont pratiquement toujours utilisés avec Acrobat Pro et j’avoue que j’ai souvent tendance à oublier que certaines fonctions ne peuvent être utilisées  avec Adobe Reader !!!
    Je viens de l’installer et je regarderai ce qu’il est possible de faire (mais je ne sais pas exactement quand, peut-être en début de semaine prochaine).
    @+
    :bonjour:

    en réponse à : Impression de pages précises de plusieurs fichiers pdf #64488
    bebarth
    Maître des clés

    bonsoir,
    Le prix d’une licence pro est d’environ 215€/an.
    Peut-être y a-t-il des prix pour l’educa Nationale ?
    Voir si ça vaut le coup… il y a tellement de possibilités avec que je dirais oui, mais si c’est juste pour imprimer et ne rien faire d’autre, je ne sais pas !
    @+
    :bonjour:

    en réponse à : Copier la valeurs saisie dans un sous-formulaire #64559
    bebarth
    Maître des clés

    j’avais fait l’inverse ! il faut donc écrire :

    Code:
    otherDoc.getField(« DEMANDEUR_NOM »).value=this.getField(« DEMANDEUR_NOM »).value;

    @+
    :bonjour:

    en réponse à : Copier la valeurs saisie dans un sous-formulaire #64558
    bebarth
    Maître des clés

    à ce moment la, tu écris :

    Code:
    var otherDoc = this.openDataObject(« Resume commande.pdf »);

    @+
    :bonjour:

    en réponse à : Copier la valeurs saisie dans un sous-formulaire #64556
    bebarth
    Maître des clés

    bonjour,
    Tu ouvres ton fichier que tu viens d’extraire avec :

    Code:
    var otherDoc = app.openDoc({
    cPath: chemindufichier,
    });

    Tu recopies les valeurs des champs avec :

    Code:
    this.getField(« nomChamp »).value=otherDoc.getField(« nomChamp »).value;

    …et à la fin tu refermes le fichier avec :

    Code:
    otherDoc.closeDoc();

    Si tu n’y arrives pas et que tu peux partager un fichier…
    @+

    en réponse à : Étirer une page ou un objet #64554
    bebarth
    Maître des clés

    bonjour,

    … avec l’outil de modification d’objets il faut savoir qu’il faut appuyer sur la touche majuscule pour déformer non proportionnellement (à l’inverse des autre logiciels Adobe).

    Ça m’a interpelé, j’ai donc vérifié sur Acrobat Pro XI et DC !
    Si on étire avec les poignées des coins, ça modifie la taille de façon homogène (homomorphisme) que l’on appuie ou pas sur la touche majuscule.
    Par contre, si on utilise la poignée au centre de chaque côté, on peu déformer l’image ou la modifie la taille de façon homogène en appuyant sur la touche majuscule… comme sur les autres logiciels en général !
    @+
    :bonjour:

    en réponse à : Suppression d’un élément d’une liste déroulante #64547
    bebarth
    Maître des clés

    bonsoir,
    Voici ce que donnerait le script pour ton exemple :

    Code:
    var laListeBis=new Array();
    for (var i=1; i<=3; i++) {
        if (this.getField(« Case à cocher_ »+(i+3)).value!= »Off ») {
            laListeBis.push(this.getField(« Text »+i+ ».0.0″).value);
        }
    }
    this.event.target.setItems(laListeBis);

    A mettre en script de calcul de ta liste nommée AD.
    L’avantage de cette méthode est que s’il y a 50 cases à cocher on ne définit pas une liste de 50 conditions (if) !
    Pour info :
    if ( this.getField(« Case à cocher_4 »).value == « 1 » ) -> Si la case est cochée et que sa valeur est égale à 1.
    if (this.getField(« Case à cocher_ »+(i+3)).value!= »Off ») -> Si la case est cochée, quelle que soit la valeur.

    @+
    :bonjour:

    en réponse à : Date + X jours #64532
    bebarth
    Maître des clés
    Code:
    var chaine = this.getField(« laDate »).valueAsString;
    if (chaine != «  ») {
      //Récupération des éléments de la date
      var jour = chaine.substring(0,2);
      var mois = chaine.substring(3,5);
      var annee = chaine.substring(6,10);
      //Définition de l’objet date + 1 jour (les mois sont numérotés de 0 à 11)
      var d = new Date(annee,(mois-1),jour);
      var n = d.getTime()+(1*24*3600*1000);// 1 pour 1 jour, n en millisecondes
      var date = new Date(n);
      this.event.target.value = date;
    } else {
      this.event.target.value = «  »;
    }

    @+
    :bonjour:

    en réponse à : Suppression d’un élément d’une liste déroulante #64544
    bebarth
    Maître des clés

    bonjour,
    …sinon tu peux créer une table !!!
    Ici avec 5 cases à cocher de cb.0 à cb.4.

    Code:
    var laListe=new Array();
    for (var i=0; i<=4; i++) {
        if (this.getField(« cb. »+i).value!= »Off ») {
            laListe.push(this.getField(« cb. »+i).value);
        }
    }
    this.event.target.setItems(laListe);

    @+
    :bonjour:

    en réponse à : Date + X jours #64530
    bebarth
    Maître des clés

    bonjour,
    Voici une solution si tu n’y es pas arrivé tout seul :

    Code:
    //Récupération des éléments de la date
    var chaine = this.getField(« laDate »).valueAsString;
    var jour = chaine.substring(0,2);
    var mois = chaine.substring(3,5);
    var annee = chaine.substring(6,10);
    //Définition de l’objet date + 1 jour (les mois sont numérotés de 0 à 11)
    var d = new Date(annee,(mois-1),jour);
    var n = d.getTime()+(1*24*3600*1000);// 1 pour 1 jour, n en millisecondes
    var date = new Date(n);
    this.event.target.value = date;

    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,
    A mettre en script d’action du bouton :

    Code:
    if (this.getField(« cb »).value!= »Off ») {
    this.getField(« cb »).checkThisBox(0,false)
    } else {
    this.getField(« cb »).checkThisBox(0,true)
    }

    cb étant le nom de champ de la checkbox.
    @+
    :bonjour:

    en réponse à : Date + X jours #64529
    bebarth
    Maître des clés

    bonjour,
    Regarde ce post, cela devrait t’aider…
    https://abracadabrapdf.net/forum/index.php/topic,3480.msg20773.html#msg20773
    Il faudra évidemment adapter le script à ce que tu veux faire exactement !
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,
    Si Adobe à retiré ce paramètre depuis Acrobat 6.0, je ne vois pas pourquoi ils le remettraient !!!!
    As-tu essayé d’avoir la boite de dialogue d’enregistrement ?
    @+
    :bonjour:

    bebarth
    Maître des clés

    Comme le titre « An alternate method for exporting an attachment that is a PDF file » l’indique, ça ne fonctionne que si la pièce attachée est un fichier pdf !
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,
    On ne peut apparemment plus définir le paramètre cDIPath !
    https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_exportDataObjectbc-31&rhtocid=_6_1_8_23_1_30
    Regarde ce que l’on peu faire car je ne comprend pas « If cDIPath is not passed to this method, a file selection dialog box opens to allow the user to select a save path for the embedded data object. »
    Peut-être faut-il indiquer cDIPath: » » pour avoir la boîte de dialogue (?????)
    @+
    :bonjour:

    en réponse à : Compter des champs remplis #64462
    bebarth
    Maître des clés
    en réponse à : Impression de pages précises de plusieurs fichiers pdf #64485
    bebarth
    Maître des clés

    Sur Acrobat Pro, le plus simple est de créer une action puis de la lancer.
    Ci-joint un fichier à décompresser et à charger dans Acrobat Pro, juste avec un double clique.
    Sinon, voici es copies d’écran pour créer l’action et la lancer.
    Pour « Ajouter des fichiers » tu sélectionnes tous les fichiers à traiter.
    Ce n’est pas très compliqué. Essaye et tu me dis !
    Sinon j’essaierai de développer un peu plus tard…
    @+
    :bonjour:

    en réponse à : Impression de pages précises de plusieurs fichiers pdf #64483
    bebarth
    Maître des clés

    :Euuuh: :doute:
    Pour Acrobat Pro je vois, mais pour Adobe Reader comme ça, je ne sais pas !
    @+
    :bonjour:

    bebarth
    Maître des clés

    J’ai oublié le point-vigule…

    Code:

    Variables+=f.valueAsString + « ; »;

    @+
    :bonjour:

    en réponse à : Impression de pages précises de plusieurs fichiers pdf #64481
    bebarth
    Maître des clés

    bonjour,
    A partir d’Adobe Reader ou Acrobat Pro ?
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,
    Je n’ai jamais fait ça, mais si ton script précédent fonctionne, celui que tu veux faire doit être du genre :

    Code:
    var outputString = «  »;
    var Noms = «  »;
    var Variables = «  »;
    for (var i = 0; i < this.numFields; i++) {
      var f = this.getField(this.getNthFieldName(i));
      if (f==null || f.type== »button » || f.type== »signature ») continue;
      Noms+=f.name + « ; »;
      Variables+=f.valueAsString;
    }
    outputString=Noms+ »rn »+Variables;
    this.createDataObject(« output.csv », outputString);
    this.exportDataObject({ cName: »output.csv », nLaunch: « 0 »});

    Essaye et dis moi le résultat !
    @+
    :bonjour:

    en réponse à : Combinaison de cases à cocher. #64479
    bebarth
    Maître des clés

    bonjour,
    voici ce que je te propose. Si 1, 2 et 3 sont cochés simultanément 6 et 7 sont cochés ensembles. Est-ce ce que tu voulais ???
    @+
    :bonjour:

    en réponse à : Combinaison de cases à cocher. #64477
    bebarth
    Maître des clés

    Essaie « if » avec un « i » minuscule…
    Et où as tu écris ce script ?
    En fin de compte je pense qu’il faudrait l’ecrire en script d’action des cases 1 et 2 et remplacer évent.target par le nom du champ de la case 6 (est-ce claire ?)
    …et rajouter else…. false pour décocher automatiquement.
    :bonjour:

    en réponse à : Combinaison de cases à cocher. #64475
    bebarth
    Maître des clés

    Fait une copie de ce que tu as écris !

    en réponse à : Combinaison de cases à cocher. #64473
    bebarth
    Maître des clés

    Bonjour,
    Pour case 6 :

    Code:
    If (this.getField(« case1 »).value!= »Off »&&this.getField(« case2″).value!= »Off ») this.event.target.checkThisBox(0,true)


    Essaie car impossible pour moi de vérifier avant.

    @+
    :bonjour:

    en réponse à : Script pour renommer des champs #64471
    bebarth
    Maître des clés

    Bonjour,
    Si cela t’est possible il faudrait partager ton fichier pour voir ce qu’il est possible de faire, mais pour ma part je n’aurai pas d’ordi Avant le 22 août…
    @+
    :bonjour:

    en réponse à : Script pour renommer des champs #64469
    bebarth
    Maître des clés

    …les templates pour dupliquer des pages ça ne t’intéresse pas ?
    Désolé pour les réponses succinctes, mais j’ai juste mon téléphone pour répondre…
    @+
    :bonjour:

    en réponse à : Enregistrement fichier PDF #64466
    bebarth
    Maître des clés

    L’aplatissement est le moyen le plus sûr !
    Après, ça dépend de l’importance que l’on donne au document et à la possibilité de le modifier…
    @+
    :bonjour:

    en réponse à : Script pour renommer des champs #64467
    bebarth
    Maître des clés

    bonjour

    Il est impossible de renommer des champs via JavaScript.
    Selon ce que tu veux faire, je te conseille de regarder du côté « Template »…
    @+
    :bonjour:

    en réponse à : Enregistrement fichier PDF #64464
    bebarth
    Maître des clés

    bonjour,
    Je pense que le plus simple c’est d’aplatir mais attention de faire ça sur une copie car c’est irréversible !
    @+

    :bonjour:

    en réponse à : Compter des champs remplis #64459
    bebarth
    Maître des clés
    bebarth
    Maître des clés

    bonjour,
    Sur mon Acrobat DC ça ne fonctionnait pas non plus.
    J’ai désactivé la case « Afficher la couleur…. » dans les préférences « Formulaires » et maintenant ça fonctionne.
    @+
    :bonjour:

    bebarth
    Maître des clés

    …pour moi les champs sont verts également !
    :Euuuh: :Euuuh:

    en réponse à : diviser un pdf avec des pages à deux colonnes #64447
    bebarth
    Maître des clés

    bonjour,
    As-tu quelques pages à partager que je regarde… et comprenne mieux ce que tu veux et ce qui est possible de faire.
    @+

    :bonjour:

    bebarth
    Maître des clés

    bonjour,
    tu as confondu les champs RAMEx et VOIEx, par exemple :

    Code:
    this.getField(« VOIE8 »).readonly = false; -> incorrect

    et

    Code:
    this.getField(« RAME8 »).readonly = false; -> correct

    de plus, ta ligne :

    Code:
    for (var i=0; i<6; i++) {this.getField("VOIE8."+i).value = "";}

    provoque un message d’erreur (cf. console) car le script ne trouve pas les champs ! Peut-être sur une autre page ???
    Idem pour les autres champs RAMEx.

    @+
    :bonjour:

    bebarth
    Maître des clés

    Pour moi, cette case devrait être cochée par défaut.
    Ça me parait tellement plus logique d’avoir immédiatement le résultat et je ne comprend pas l’intérêt qu’elle soit décochée !
    @+
    :bonjour:

    bebarth
    Maître des clés

    Dans ton fichier, par exemple, si tu coches cette case, la couleur change directement lorsque tu relâche la souris quand tu modifies la liste ETAT RAME alors que si elle n’est pas cochée, il faut attendre que ton champ soit validé (via une tabulation par exemple…).
    @+
    :bonjour:

    bebarth
    Maître des clés

    …si je peux me permettre de te donner un conseil, tu devrais cocher la case « Valider la valeur sélectionnée immédiatement » de tes listes déroulantes.
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,

    Seulement via un script d’application, sécurité oblige.

    …et si cela t’intéresses, tu peux consulter les posts :
    https://abracadabrapdf.net/forum/index.php/topic,3450.msg20546.html#msg20546
    et
    https://abracadabrapdf.net/forum/index.php/topic,3086.msg20164.html#msg20164
    ou demander sur le forum !!! Mais sur le mois d’août ça va être compliqué je crois…
    @+
    :bonjour:

    en réponse à : Action double via une case à cocher #64185
    bebarth
    Maître des clés

    bonjour,
    Dans ton fichier, tu as oublié de recopier le script de document « stages », c’est pour cela qu’il y avait un dysfonctionnement pour les cases « licence ».
    Maintenant il y a un deuxième script de document pour l’affichage automatique de la date du jour si les champs sont vides.
    C’est également réglé pour l’affichage sous la forme 70.44,00€
    Si tu modifies encore ton fichier, vérifie une dernière fois l’ordre de calcul avant ton dernier enregistrement car il avait encore bougé et cela peut provoquer des erreurs de calculs si les variables ne sont pas définies par exemples.
    @+
    :bonjour:

    en réponse à : Cacher un bouton radio parmi d’autres #64400
    bebarth
    Maître des clés

    Merci Merlin,
    c’est bien ce que j’avais remarqué, mais comment est attribuée l’ordre ?
    Pourquoi lorsque l’on change la taille du champ du cache par exemple, sa position d’ordre est-elle systématiquement modifiée ?
    Donc plus on augmente son ordre de tabulation et plus le champ est en avant ? correct ? Le plus grand numéro d’ordre est don au premier plan ?
    …et le résultat n’est pas toujours ce qu’il devrait être apparemment !
    @+
    :bonjour:

    en réponse à : Cacher un bouton radio parmi d’autres #64397
    bebarth
    Maître des clés

    Je ne peux pas t’expliquer pourquoi (peut-être Merlin ???) mais apparemment la taille du cache doit être plus petite que la taille du champ du bouton (mais plus grande que le bouton… si on veut le cacher  :geek: ).
    @+
    :bonjour:

    en réponse à : Cacher un bouton radio parmi d’autres #64395
    bebarth
    Maître des clés

    bonjour,
    …comme ça je ne vois pas comment faire « directement » !
    Si on compte le nombre de champ avec this.numFields; on en trouve que 2 (ce qui me parait logique pour des boutons radio), sauf que je ne sais pas comment masquer uniquement celui du milieu. Je ne dis pas que c’est impossible car on peut y arriver manuellement en mettant ce champ de formulaire invisible à l’écran. Mais via JavaScript, je n’ai pas de piste… sinon faire apparaitre un carré de même couleur que le fond, qui cacherait ce bouton…
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,
    Je t’ai envoyé une proposition en MP sur le fichier que tu m’as fourni.
    @+
    :bonjour:

    en réponse à : Cacher un bouton radio parmi d’autres #64392
    bebarth
    Maître des clés

    bonjour,
    j’ai copié/collé ton script et il fonctionne très bien !
    Par contre, je ne comprend pas :

    La case à cocher est dans la variable Paiement et s’appelle Espèce.

    @+
    :bonjour:

    en réponse à : Recuperer la valeur textuelle #64380
    bebarth
    Maître des clés

    bonjour,
    Il y a un article intéressant lorsqu’on travaille sur les variables :
    https://acrobatusers.com/tutorials/global-object-acrobat-javascript
    avec le fichier à étudier, on comprend mieux !
    http://www.pdfscripting.com/public/FreeStuff/PDFSamples/GlobVars_Sample.pdf

    Voir aussi :
    https://developer.mozilla.org/fr/docs/Glossaire/Variable

    @+
    :bonjour:

    en réponse à : Positionnement champ de texte et multilignes #64385
    bebarth
    Maître des clés

    Tu vois Lucie, j’étais certain que Merlin aurait une explication !  :extra:
    @+
    :bonjour:

    en réponse à : Case à cocher conditionnelle #64386
    bebarth
    Maître des clés

    bonjour,
    En script de la case à cocher tu écris :

    Code:
    if (this.event.target.value != « Off ») {
        this.getField(« Precisez »).display = display.visible;
        this.getField(« Precisions »).display = display.visible;
    } else {
        this.getField(« Precisez »).display = display.hidden;
        this.getField(« Precisions »).display = display.hidden;
    }

    @+
    :bonjour:

    en réponse à : Positionnement champ de texte et multilignes #64382
    bebarth
    Maître des clés

    bonjour,
    Je ne saurais t’expliquer pourquoi, mais si tu changes ta police cela fonctionne.
    J’ai fait quelques essais avec des polices différentes et il y a quelques fois des comportements étranges… je ne retrouve plus la police pour faire une copie d’écran, mais le texte était hors champ !!!
    Merlin aura peut-être (même certainement) une explication !
    @+
    :bonjour:

    en réponse à : Positionnement champ de texte et multilignes #64381
    bebarth
    Maître des clés

    bonjour,

    …ça marche pour certains champs mais pas pour d’autres alors que les propriétés sont les mêmes..

    Quand un coup ça marche et un coup ça ne marche pas, il vaut mieux si possible partager le fichier (ou une partie) car normalement il n’y a pas de raison, et c’est plus facile pour trouver le pourquoi…
    @+
    :bonjour:

    en réponse à : Recuperer la valeur textuelle #64377
    bebarth
    Maître des clés

    bonjour,

    (J’avoue je me suis basé sur https://abracadabrapdf.net/forum/index.php/topic,3460.msg20605.html#msg20605)

    Je n’ai personnellement jamais écris comme ça. Je ne suis pas spécialiste ès JavaScript et ne connais donc pas tous les comportements selon la syntaxe, mais ce que je suis certain, c’est que si c’est bien écris, ça fonctionne alors que la réciprocité n’est pas vraie !  :geek:

    C’est pour cela que je préconise d’utiliser un éditeur JavaScript quand on commence à enchevêtrer des instructions (if, switch…) et/ou des boucles (for, while…). Placer les crochets au bonne endroit facilite la relecture !

    Edit: J’ai fait ça, c’est bon ?

    Je n’ai pas testé comme ça, mais ça m’a l’air de fonctionner. Ne pas oublier le « ; » en fin de ligne, et à mon avis les parenthèse inutiles compliquent la lecture. Toujours à mon avis, il vaut mieux mettre un espace pour séparer et bien lire les opérateurs (&&, ||…) surtout lorsqu’on débute, mais je le fais encore lorsque ça coince…
    J’écrirais donc ton script comme ça :

    Code:
    var int1 = this.getField(« int_1 »);
    var poids = this.getField(« Poids »);
    if (this.getField(« Livraison »).value== »2″) {
        this.event.target.value = « Pas de Frais de port »;
    } else {
        if (poids.value<1128 && int1.value<1) {
            this.event.target.value = « Env »;
        } else {
            if (poids.value<2000 && int1.value==1) {
                this.event.target.value = « CarL »;
            } else {
                if (poids.value>1128 && poids.value<2000 && int1.value==0) {
                    this.event.target.value = « CarMP »;
                } else {
                    if (poids.value<5000 && int1.value>=2 && int1.value<=5) {
                        this.event.target.value = « CarLP »;
                    } else {
                        this.event.target.value = « Demande de devis »;
                    }
                }
            }
        }
    }

    @+
    :bonjour:

    en réponse à : Recuperer la valeur textuelle #64375
    bebarth
    Maître des clés

    bonsoir,
    je n’ai pas vérifié le calcul car je ne trouve pas les champs correspondants, mais juste la syntaxe qui n’était pas tout à fait ça….

    Code:
    var text1 = this.getField(« Text1 »);
    var poids1 = this.getField (« Poids »);
    if ((text1.value= »Env ») && (poids.value<100)) {
        this.event.target.value == « 1,90 »;
    } else {
        if ((text1.value== »Env ») && (poids1.value>=100) && (poids1.value<250)) {
        this.event.target.value = « 3,50 »;
        } else {
            if ((text1.value== »Env ») && (poids1.value>=250) && (poids1.value<500)) {
                this.event.target.value = « 5,10 »;
            } else {
                if ((text1.value == « Env ») && (poids1.value>=500) && (poids1.value<3000)) {
                    this.event.target.value = « 6,70 »;
                } else {
                    this.event.target.value = « bientot »;
                }
            }
        }
    }

    Lorsqu’il y a plein de « if / else » imbriqués, il vaut mieux les écrire correctement car c’est vite fait le fouilli…
    @+
    :bonjour:

    en réponse à : Bouton radio (et pas checkbox) avec condition #64370
    bebarth
    Maître des clés

    …Je pense que là c’est un peu trop hors compétence, j’y comprends rien du tout …

    mais non, tu vas voir :
    La case à cocher avec le script est copiée/collée 4 fois et il y a juste la valeur d’exportation qui change : 0, 1, 2 et 3.
    Les champs avec les images ont le même nom avec une extension : .0, .1, .2 et .3

    Code:
    //ça c’est facile, valeur = la valeur d’exportation de la case cocher
    var valeur= this.event.target.value;
    //ici, sans indiquer l’extension,  on masque tous les champs monImage
    //mais en fait, cette ligne ne sert à rien et peut être supprimée
    this.getField(« monImage »).display = display.hidden;
    //si la case à cocher à une valeur d’exportation, donc si une case est cochée
    if (this.event.target.value != « Off ») {
        //on masque tous les champ monImage
        this.getField(« monImage »).display = display.hidden;
        //on affiche le champ monImage avec l’extention identique à la valeur de la case à cocher
        this.getField(« monImage. »+valeur).display = display.visible;
    //sinon (si aucune case n’est cochée)
    } else {
        //on masque tous les champs monImage
        this.getField(« monImage »).display = display.hidden;
    }

    …et pi c’est tout !!!
    @+
    :bonjour:

    en réponse à : Bouton radio (et pas checkbox) avec condition #64368
    bebarth
    Maître des clés

    bonjour,
    Voici un exemple où tu affiches une image en fonction de la valeur de la case à cocher.
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,

    Je sais, je sais ! Je suis exigeante hihi!

    Tu es une femme, non ???
    Voilà, je pense que ce coup-ci tout y est !!!
    @+
    :bonjour:

    …et donc, en plein dans le mille !
    :geek:

    bebarth
    Maître des clés

    Voilà !
    Rien à voir avec le script de Merlin. C’est un champ texte avec un script de touches personnalisé pour n’admettre que les chiffres, le point et la virgule et un script en champ désactivé pour faire le job!
    Tu as les 2 versions avec au final le point ou avec la virgule.
    J’ai mis un espace fin au lieu d’un espace pour séparer les milliers.
    Tu me dis si j’ai oublié quelque chose.
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,

    Il me faut un javascript pour ceci : 1 234 567.89 et ne pas afficher 0.00 par défaut..

    J’avais cru comprendre que l’utilisateur tape un point (12345.78) ou une virgule (12345,78), le résultat devait être 12 345,78
    C’est pas cela ???
    @+
    :bonjour:

    en réponse à : Bouton radio (et pas checkbox) avec condition #64365
    bebarth
    Maître des clés

    Script d’action de la case à cocher :

    Code:
    if (event.target.isBoxChecked(0)) {
    this.getField(« monImage »).display = display.visible;
    } else {
    this.getField(« monImage »).display = display.hidden;
    }

    …mais on peut aussi aller lire la valeur de la case ou d’un bouton radio !!!
    @+
    :bonjour:

    en réponse à : Bouton radio (et pas checkbox) avec condition #64363
    bebarth
    Maître des clés

    Du coup j’en profite est ce que je peux conditionner l’affichage d’une image au choix d’un bouton ?

    C’est à dire ??? soit je la vois soit je ne la vois pas, c’est cela ?
    @+
    :bonjour:

    bebarth
    Maître des clés

    Pour la case à cocher le script est :

    Code:
    if (event.target.isBoxChecked(0)) {
    this.getField(« Nom »).value = «  »;
    this.getField(« Nom »).fillColor = color.ltGray;
    this.getField(« Nom »).readonly = true;
    } else {
    this.getField(« Nom »).fillColor = [« RGB »,(187/255),(179/255),(172/255)];
    this.getField(« Nom »).readonly = false;
    }

    Pour la couleur du champ en fonction d’une liste ou d’un bouton radio, il suffit d’aller lire la valeur d’exportation de cette liste ou ce ce bouton.
    @+
    :bonjour:

    en réponse à : Bouton radio (et pas checkbox) avec condition #64361
    bebarth
    Maître des clés

    bonjour,
    Tu crées et dupliques un bouton radio avec 2 « Choix de bouton radio » différents (Gauche et Droite par exemple).
    Puis un script de calcul de ton champ texte :

    Code:
    if (this.getField(« boutonRadio »).value== »Gauche ») {
        this.event.target.value= »C’est le bouton radio de gauche qui est coché »;
    } else {
        this.event.target.value= »C’est le bouton radio de droite qui est coché »;
    }

    S’il y a juste 2 boutons radio, utilise l’instruction « if », s’il y en a plus je te conseille l’instruction « switch ».
    Attention à ne pas mettre d’espaces ou de caractères spéciaux dans les noms de champs. cela peut provoquer des comportements inattendus lors de l’exécution des scripts.
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,
    Je suppose que dans ton formulaire l’utilisateur ne peut pas modifier la couleur du champ, mais je voulais savoir si tu connais les valeurs exactes pour le réglage de la couleur ou si elle a été définie avec le cercle chromatique et que tu ne connais pas exactement les valeurs.
    Si tu connais les valeurs, on les indique directement dans le script, sinon il faut aller lire la couleur du champ avant de le griser puis de rappeler cette couleur…
    j’espère avoir été clair !
    @+
    :bonjour:

    bebarth
    Maître des clés

    @Merlin : C’est parfait…

    Je suis un peu étonné, car pour moi :

    Code:
    event.value = util.printf(« %,2.2f »,event.value).toString().replace(/,/gim, » « );

    devrait donner : 1.234 56 puisqu’on remplace chaque virgule par un espace… il faudrait plutôt écrire :

    Code:
    event.value = util.printf(« %,2.2f »,event.value).toString().replace(/./g, » « );

    …de plus, g devrait suffire pour global quand on remplace un signe !
    Et dans l’autre exemple il faut remplacer les virgules par un espace

    Code:
    .replace(/,/gim, » « )

    et le point par une virgule

    Code:
    .replace(« . », », »)

    (il devrait n’y en avoir qu’un).
    @+
    :bonjour:

    bebarth
    Maître des clés

    c’est une couleur bien précise ou il faut aller lire la couleur ???
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,
    En script d’action de la case à cocher tu peux écrire :

    Code:
    if (event.target.isBoxChecked(0)) {
    this.getField(« Nom »).value = «  »;
    this.getField(« Nom »).fillColor = color.ltGray;
    this.getField(« Nom »).readonly = true;
    } else {
    this.getField(« Nom »).fillColor = color.white;
    this.getField(« Nom »).readonly = false;
    }

    … pour bloque le champ « Nom » et tu fais de même pour tous les champs que tu veux bloquer.
    @+
    :bonjour:

    en réponse à : Afficher/Masquer une image au survol d’un texte. #64321
    bebarth
    Maître des clés

    moi j’ai Sierra et Acrobat Pro DC 2018.11.20040.280397, et ça fonctionne !
    @+
    :bonjour:

    en réponse à : Afficher/Masquer une image au survol d’un texte. #64317
    bebarth
    Maître des clés

    bonjour,

    Et je suis sur mac… si ça peut changer quelque chose…

    Je ne pense pas, car je suis également sur mac et ça fonctionne !
    C’est bien ton image que Merlin à placer ?
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,
    Est-ce le résultat d’un calcul ou le nombre est-il rentré manuellement ?
    @+
    :bonjour:

    en réponse à : Afficher/Masquer une image au survol d’un texte. #64312
    bebarth
    Maître des clés

    Quel est le format du fichier image ?
    Tu peux le partager ?
    @+
    :bonjour:

    en réponse à : Afficher/Masquer une image au survol d’un texte. #64308
    bebarth
    Maître des clés

    bonjour,

    1) Comment importer une image dans un champs type bouton ? On est d’accord que j’ai pas à passer par une action type : event.target.buttonImportIcon(); ?

    Tu vas dans l’onglet « Options » du bouton.

    2 ) Quel type de champ pour le déclencheur ? peu importe ?

    Tous les types de champs sauf « code à barres » apparemment, onglet « Actions ».

    @+
    :bonjour:

    en réponse à : Addition des heures (hh:mm:ss) égales à 24h00 #64224
    bebarth
    Maître des clés

    bonjour,
    Voici donc une version qui n’appelle plus que 2 fonctions.
    J’avoue que ça demande au départ une petite réflexion logique à savoir ce qui peut être mis en variable, sinon le calcul en lui même n’est pas très complexe.
    J’espère que cela sera utile à quelqu’un au cas où cette version arrive trop tardivement pour Crevette.
    @+
    :bonjour:

    en réponse à : Bloquer les nombres négatifs #64304
    bebarth
    Maître des clés

    …et pourquoi faire si simple quand on peut faire plus compliqué ?

    :geek:

    en réponse à : Bloquer les nombres négatifs #64302
    bebarth
    Maître des clés

    Je suppose que ton champ est déjà en format nombre.Tu rajoutes ce script de calcul :

    Code:
    if (this.event.target.value<0) {
        this.resetForm(this.event.target.name);
        this.getField(this.event.target.name).setFocus();
    }

    @+
    :bonjour:

    en réponse à : Bloquer les nombres négatifs #64300
    bebarth
    Maître des clés

    Bonjour,
    Ça veut dire quoi ???
    Interdire un nombre négatif ou une fois le nombre négatif entré ne pas pouvoir le modifier ?
    @+
    :bonjour:

    en réponse à : Addition des heures (hh:mm:ss) égales à 24h00 #64222
    bebarth
    Maître des clés

    bonjour,
    Voici la version avec texte en rouge si > 24 h.
    @+
    :bonjour:

    en réponse à : Addition des heures (hh:mm:ss) égales à 24h00 #64219
    bebarth
    Maître des clés

    bonjour Merlin,
    Je viens de regarder ton exemple sur l’abracadabraScripts que j’avais déjà depuis un bon moment, et « mon idée » est à peu près identique (sans le beep ).
    Ici, mon souci est de savoir où placer l’alerte, qui doit quand même réapparaitre si on fait une modification.
    Tous les champs sont avec un script de calcul et plus de 70 champs sont recalculés à chaque fois… la plupart devrait être en script d’action, champ désactivé, ce qui éviterait de tous les recalculer à chaque fois et me simplifierait la tâche pour afficher l’alerte !
    Généralement, lorsque j’essaye de résoudre un problème posé, je mets de côté le « personnellement je n’aurais pas fait comme ça », mais ici à force de résoudre un problème + un autre + un autre, je pense qu’il serait bon maintenant qu’on connait (presque) toutes les questions de repartir à 0 avec ce formulaire. Il faut reprendre les noms des champs pour avoir quelque chose de plus « logique », ce qui simplifierait les formules (même si en soit elle ne sont pas très compliquée)… Mais si on regarde les 6 fonctions appelées elles sont toutes faites sur le même principe. Je pense qu’en uniformisant le nom de champs on pourrait n’appeler plus qu’une seule fonction pour un même calcul.
    Mais tout ceci demande un peu de travaille et je n’aurai pas le temps de faire ça ces jours-ci… les vacances approchent…
    Si je trouve un moment, j’essaierai de regarder la semaine prochaine, mais je ne promets rien !
    en attendant, voici le fichier où le message apparait seulement à partir de 24:00:01.
    @+
    :bonjour:

    en réponse à : Addition des heures (hh:mm:ss) égales à 24h00 #64217
    bebarth
    Maître des clés

    J’ai effectivement mis >= 24. Je rectifierai.
    J’ai déjà une idée pour que le message n’apparaisse qu’une fois.
    Je suppose que le message doit apparaître dès 24:00:01 !
    @+

    :bonjour:

    en réponse à : Addition des heures (hh:mm:ss) égales à 24h00 #64215
    bebarth
    Maître des clés

    Dans le fichier joint, le message s’affiche pour tous les jours où le total est supérieur à 24 h à chaque calcul, donc même si l’alerte à déjà été affichée pour un jour.
    Je suppose que tu voudrais ne le voir affiché que la première fois. Si oui, je verrai plus tard…
    J’ai également rajouté un scrip de champ désactivé pour le tableau 1 qui initialise à 00:00:00 si le champ est vide. Je te laisse le soin de faire de même pour le tableau 2.
    @+
    :bonjour:

    en réponse à : Addition des heures (hh:mm:ss) égales à 24h00 #64214
    bebarth
    Maître des clés

    …je termine juste un petit boulot (car j’ai aussi un métier  :geek: ) et je regarde ça !
    @+
    :bonjour:

    en réponse à : Addition des heures (hh:mm:ss) égales à 24h00 #64212
    bebarth
    Maître des clés

    bonjour,
    pour quels totaux souhaites-tu afficher une alerte ???
    Pour les totaux ligne 1 à ligne 4 de tous les jours ???
    Pour les totaux L2+L3 et L1+L4 ???
    Pour les minis et les moyennes ???
    Est-ce juste une alerte ??? ou doit-il y avoir une action si les totaux dépassent 24 h ???
    @+
    :bonjour:

    en réponse à : Addition des heures (hh:mm:ss) égales à 24h00 #64209
    bebarth
    Maître des clés

    Dans le calcul des moyennes, la ligne :
    var s=parseInt(adTemps/7);
    utilise la partie entière du quotient.
    Je présume qu’Excel doit arrondir à la seconde la plus proche. Si tu veux faire de même, tu rajoutes ces 3 lignes juste après :
    var l=0; // pour initialiser la variable
    var l=String(s).length; // pour connaître le nombre de chiffres de la partie entière
    var s=(adTemps/7).toPrecision(l); // pour arrondir au nombre de chiffres exact

    et je pense que tu devrais retrouver les mêmes valeurs.
    @+
    :bonjour:

    en réponse à : Addition des heures (hh:mm:ss) égales à 24h00 #64207
    bebarth
    Maître des clés

    bonjour,
    Voici le résultat avec le calcul des minis et moyennes.
    A vérifier si je n’ai pas fait d’erreur…
    @+
    :bonjour:

    en réponse à : Macro pour assembler des fichiers pdf #64265
    bebarth
    Maître des clés

    bonjour,

    Donc dans le fichier séparer le nom de l’icône ?

    Je ne comprend pas bien !
    Si tu veux, tu peux m’envoyer ton fichier en MP et je te placerai le fichier texte.
    @+
    :bonjour:

Affichage de 99 réponses de 2,377 à 2,475 (sur un total de 3,389)