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
jctremblayMaî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
bebarthMaî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 #69307
jctremblayMaî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 #69308
bebarthMaî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 #69309
jctremblayMaître des clésExactement ce que je voulais. Merci…. encore une fois!
3 juin 2021 à 00:46 #69310
jctremblayMaî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 #69311
bebarthMaî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 #69312
jctremblayMaî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 #69313
bebarthMaî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 #69314
jctremblayMaî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 #69315
bebarthMaître des clésMerci !
Mais je ne suis pas un pro… :geek:
@+
:bonjour:3 juin 2021 à 19:32 #69316
jctremblayMaî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 #69317
bebarthMaî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 #69318
jctremblayMaître des clésQuel « amateur »! :jerisjaune:
C’est exactement ça. C’est parfait.
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.
