abracadabraPDF › Forums › PDF – Général › Changement de couleur des aspect des champs
- Ce sujet est vide.
-
CréateurSujet
-
1 juin 2021 à 17:34 #46614jctremblayParticipant
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:
-
CréateurSujet
-
AuteurRéponses
-
1 juin 2021 à 18:57 #69306bebarthMaître des clés
bonjour,
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 #69307jctremblayParticipantBonsoir 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 #69308bebarthMaî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 #69309jctremblayParticipantExactement ce que je voulais. Merci…. encore une fois!
3 juin 2021 à 00:46 #69310jctremblayParticipantPour 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 #69311bebarthMaî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 #69312jctremblayParticipantMerci 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 #69313bebarthMaî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 #69314jctremblayParticipantWow! Merci. Que c’est agréable d’apprendre des pros comme toi et notre cher Merlin!
:bravo:
3 juin 2021 à 19:25 #69315bebarthMaître des clésMerci !
Mais je ne suis pas un pro… :geek:
@+
:bonjour:3 juin 2021 à 19:32 #69316jctremblayParticipantMais 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 #69317bebarthMaî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 #69318jctremblayParticipantQuel “amateur”! :jerisjaune:
C’est exactement ça. C’est parfait.
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.