abracadabraPDF › Forums › PDF – Général › Renommer indices › Répondre à : Renommer indices
bonjour,
Voici les lignes pour pouvoir supprimer les anciens champs avec ton script :
function Renommer_c() {
var anciensChamps=[];
for (var i=0; i<this.numFields; i++) {
var nomChamp=this.getNthFieldName(i);
var Menu = this.getField("Menu").value;
var CaR = this.getField("nom_champ").value;
var an = this.getField("AN").value;
var P1new = this.getField("NN").value;
var P2new = this.getField("NN").value;
var b = nomChamp.split(".");
var P1 = (b[0]);
var P2 = (b[1]);
var P3 = (b[2]);
if (Menu == 1 && an == P1) {
try{
var ts=this.getField(P1+"."+P2+"."+P3).textSize;
var tf=this.getField(P1+"."+P2+"."+P3).textFont;
var rct=this.getField(P1+"."+P2+"."+P3).rect;
var pg=this.getField(P1+"."+P2+"."+P3).page;
var f=this.addField(P1new+"."+P2+"."+P3,"text",pg,rct);
anciensChamps.push(P1+"."+P2+"."+P3);
f.textSize=ts;
f.textFont=tf;
}catch(e){break}
//this.removeField(P1+"."+P2+"."+P3)
}
if (Menu == 2 && an == P2 && CaR == P1) {
try{
var ts=this.getField(P1+"."+P2+"."+P3).textSize;
var tf=this.getField(P1+"."+P2+"."+P3).textFont;
var rct=this.getField(P1+"."+P2+"."+P3).rect;
var pg=this.getField(P1+"."+P2+"."+P3).page;
var f=this.addField(P1+"."+P2new+"."+P3,"text",pg,rct);
anciensChamps.push(P1+"."+P2+"."+P3);
f.textSize=ts;
f.textFont=tf;
}catch(e){break}
//this.removeField(P1+"."+P2+"."+P3)
//app.alert("Champ retiré : "+P1+"."+P2+"."+P3);
}
}
for (var j=0; j<anciensChamps.length; j++) this.removeField(anciensChamps[j]);
}
Ton script fonctionne correctement, par contre il ne duplique pas toutes les propriétés. Tu devrais plutôt t’inspirer du miens…
Pour ce qui est de ton autre problème ce n’est pas très compliqué, il suffit de créer le nouveau champ juste au dessus de l’ancien et de ne pas l’insérer dans la table des champs à supprimer si son nom est “Q”. J’essayerai de te faire ça demain !
@+
😎