Donnez vie à vos documents numériques !
 

Changement de couleur des aspect des champs

abracadabraPDF Forums PDF – Général Changement de couleur des aspect des champs

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46614
    jctremblay
    Participant

    Est-ce possible de faire un changement de couleur globalement pour la totalité de tout les types de champs (polices, trait, fond, etc…)?

    Je suis paresseux…  :geek:

Affichage de 13 réponses de 1 à 13 (sur un total de 13)
  • Auteur
    Réponses
  • #69306
    bebarth
    Maître des clés

    bonjour,

    Code:
    for (var i=0; i    var f=this.getField(this.getNthFieldName(i));
        f.textFont=font.HelvB;
        f.borderStyle=border.d;
        f.fillColor=color.yellow;
        // etc.
    }

    @+
    :bonjour:

    #69307
    jctremblay
    Participant

    Bonsoir bebarth!

    Ça, je connais. Ça permet d’uniformiser. Mais je ne veux pas ça, je veux juste changer le Yellow là ou il se trouve. Ce n’est pas tous les champs qui ont un fond Yellow.

    Puis je recherche, une façon de changer le yellow pour du red aussi présent dans comme couleur de texte, de trait, etc… sachant que certains champs n’ont pas de Yellow et ne devrait pas serte modifier.

    #69308
    bebarth
    Maître des clés

    OK !
    Voici pour modifier les textes de jaune à rouge :

    Code:
    for (var i=0; i    var f=this.getField(this.getNthFieldName(i));
        if (color.equal(f.textColor,color.yellow)) f.textColor=color.red;
        // ou if (color.equal(f.textColor,[« CMYK »,0,0,1,0])) f.textColor=color.red;
    }

    Tu intègres dans la boucle les fonds, les traits…
    @+
    :bonjour:

    #69309
    jctremblay
    Participant

    Exactement ce que je voulais. Merci…. encore une fois!

    #69310
    jctremblay
    Participant

    Pour faire suite….

    Je ne comprend pas pourquoi ceci fonctionne:

    Code:
    var fcolo = color.blue;
    var ccolo = color.yellow;
    for (var i=0; i    var f=this.getField(this.getNthFieldName(i));
        if (color.equal(f.textColor,fcolo)) f.textColor=ccolo;
    }

    Mais que ceci ne fonctionne pas, lorsqu’on utilise un app.response

    Code:
    var fcolo = app.response({cDefault: « color.blue »});
    var ccolo = app.response({cDefault: « color.yellow »});

    for (var i=0; i    var f=this.getField(this.getNthFieldName(i));
        if (color.equal(f.textColor,fcolo)) f.textColor=ccolo;
    }

    #69311
    bebarth
    Maître des clés

    bonjour,
    Parce que tes réponses fcolo et ccolo sont des chaines de caractères !
    Pour que ça fonctionne il faudrait utiliser la foncion eval() :

    Code:
    var fcolo = app.response({cDefault: « color.blue »});
    var ccolo = app.response({cDefault: « color.yellow »});
    for (var i=0; i    var f=this.getField(this.getNthFieldName(i));
        if (color.equal(f.textColor,eval(fcolo))) f.textColor=eval(ccolo);
    }

    ou

    Code:
    var fcolo = eval(app.response({cDefault: « color.blue »}));
    var ccolo = eval(app.response({cDefault: « color.yellow »}));
    for (var i=0; i    var f=this.getField(this.getNthFieldName(i));
        if (color.equal(f.textColor,fcolo)) f.textColor=ccolo;
    }

    @+
    :bonjour:

    #69312
    jctremblay
    Participant

    Merci Bebarth,

    Le code eval est nécessaire en raison de l’utilisation de color.equal?
    Ça fonctionne bien. J’ai pu ainsi me créer un script d’application pour m’ajouter une commande de menu pour un rechercher/remplacement de couleur. :extra:

    Maintenant, si je veux, faire une recherche de tout ce qui n’est pas color.transparent. Je devrait remplacer le color.equal par quoi?

    #69313
    bebarth
    Maître des clés

    bonjour,

    Le code eval est nécessaire en raison de l’utilisation de color.equal?

    Non, la fonction eval() excécute une commande écrire au format texte.
    Quand tu écris « var fcolo = app.response({cDefault: « color.blue »}); » color.blue est écrit entre guillemets, c’est donc une chaine de caractères alors que color.blue (sans guillemets) est un élément de l’objet « color ».
    Si tu exécutes dans la console ce script, tu verras tous les éléments de l’objet « color » :

    Code:
    for (var i in color) console.println(i+ »: « + color);

    Maintenant, si je veux, faire une recherche de tout ce qui n’est pas color.transparent. Je devrait remplacer le color.equal par quoi?

    Voici par exemple pour modifier tous les champs dont le fond n’est pas transparent en transparent :

    Code:
    for (var i=0; i    var f=this.getField(this.getNthFieldName(i));
        if (!color.equal(f.fillColor,color.transparent)) f.fillColor=color.transparent;
    }

    @+
    :bonjour:

    #69314
    jctremblay
    Participant

    Wow! Merci. Que c’est agréable d’apprendre des pros comme toi et notre cher Merlin!

    :bravo:

    #69315
    bebarth
    Maître des clés

    Merci !
    Mais je ne suis pas un pro…  :geek:
    @+
    :bonjour:

    #69316
    jctremblay
    Participant

    Mais je ne suis pas un pro…

    Quel humilité!  :jerisjaune:

    Une autre question pour toi en lien…
    Si je veux changer le fond pour blue de tout les champs qui ne sont pas transparent ni blanc, je fais comment.

    J’ai essayé… avec des || ou && mais rien ne fonctionne.

    if (!color.equal(f.fillColor,(color.transparent || color.white))) f.fillColor=color.blue;

    #69317
    bebarth
    Maître des clés

    Ça devrait être :

    Code:
    for (var i=0; i    var f=this.getField(this.getNthFieldName(i));
        if (!color.equal(f.fillColor,color.transparent) && !color.equal(f.fillColor,color.white)) f.fillColor=color.blue;
    }

    @+
    :bonjour:

    #69318
    jctremblay
    Participant

    Quel « amateur »!  :jerisjaune:

    C’est exactement ça. C’est parfait.

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