abracadabraPDF › Forums › PDF – Général › Changement de couleur des aspect des champs
- Ce sujet est vide.
-
CréateurSujet
-
1 juin 2021 à 17:34 #46614
jctremblay
Maître des clésEst-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:
-
CréateurSujet
-
AuteurRéponses
-
1 juin 2021 à 18:57 #69306
bebarth
Maître des clésbonjour,
Code:for (var i=0; ivar f=this.getField(this.getNthFieldName(i));
f.textFont=font.HelvB;
f.borderStyle=border.d;
f.fillColor=color.yellow;
// etc.
}@+
:bonjour:1 juin 2021 à 19:04 #69307jctremblay
Maître des clésBonsoir 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.1 juin 2021 à 20:54 #69308bebarth
Maître des clésOK !
Voici pour modifier les textes de jaune à rouge :Code:for (var i=0; ivar 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:2 juin 2021 à 01:03 #69309jctremblay
Maître des clésExactement ce que je voulais. Merci…. encore une fois!
3 juin 2021 à 00:46 #69310jctremblay
Maître des clésPour faire suite….
Je ne comprend pas pourquoi ceci fonctionne:
Code:var fcolo = color.blue;
var ccolo = color.yellow;
for (var i=0; ivar 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;
}3 juin 2021 à 07:36 #69311bebarth
Maître des clésbonjour,
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; ivar 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; ivar f=this.getField(this.getNthFieldName(i));
if (color.equal(f.textColor,fcolo)) f.textColor=ccolo;
}@+
:bonjour:3 juin 2021 à 18:17 #69312jctremblay
Maître des clésMerci 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?
3 juin 2021 à 19:00 #69313bebarth
Maître des clésbonjour,
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; ivar f=this.getField(this.getNthFieldName(i));
if (!color.equal(f.fillColor,color.transparent)) f.fillColor=color.transparent;
}@+
:bonjour:3 juin 2021 à 19:10 #69314jctremblay
Maître des clésWow! Merci. Que c’est agréable d’apprendre des pros comme toi et notre cher Merlin!
:bravo:
3 juin 2021 à 19:25 #69315bebarth
Maître des clésMerci !
Mais je ne suis pas un pro… :geek:
@+
:bonjour:3 juin 2021 à 19:32 #69316jctremblay
Maître des clésMais 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;
3 juin 2021 à 19:38 #69317bebarth
Maître des clésÇa devrait être :
Code:for (var i=0; ivar f=this.getField(this.getNthFieldName(i));
if (!color.equal(f.fillColor,color.transparent) && !color.equal(f.fillColor,color.white)) f.fillColor=color.blue;
}@+
:bonjour:3 juin 2021 à 19:42 #69318jctremblay
Maître des clésQuel “amateur”! :jerisjaune:
C’est exactement ça. C’est parfait.
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.