abracadabraPDF › Forums › PDF – Général › Création de champs sur quelques pages seulement. › Répondre à : Création de champs sur quelques pages seulement.
10 octobre 2019 à 07:39
#66328
bebarth
Maître des clés
bonjour,
Voici une version un peu améliorée où le script :
- Supprime les doubles caractères
- Classe la plage des pages
- Vérifie si la page indiquée existe
[/list]Il y aurait certainement d’autres vérifications à apporter…
Code:
var Reponse=””;
while (Reponse==””) {
var Reponse=app.response({
cQuestion: “Indiquez les pages où insérer un champ :n• une virgule (,) pour séparer les pages ou les plagesn• un tiret (-) pour séparer les pages des plagesnExemple : 1,3-5,9”,
cTitle: “Liste des pages”,
cLabel: “Pages :”,
cDefault: “”
});
// Test des caractères de la réponse
for (var i=0; i var n=Reponse.charCodeAt(i);
if (n>57 || (n<48 && n!=44 && n!=45)) Reponse="";
}
}
if (Reponse!=””) {
// Suppression des , ou – en début ou fin de réponse
if (Reponse.startsWith(“,”)) var Reponse=Reponse.substring(1);
if (Reponse.startsWith(“-“)) var Reponse=Reponse.substring(1);
if (Reponse.endsWith(“,”)) var Reponse=Reponse.substring(0,Reponse.length-1);
if (Reponse.endsWith(“-“)) var Reponse=Reponse.substring(0,Reponse.length-1);
// Suppression des incorrects
var ok=””;
while (ok==””) {
var str=Reponse;
var n=str.indexOf(“–“);
if (n>-1) {
Reponse=Reponse.replace(/–/g,”-“);
var ok=””;
} else {
var ok=”OK”;
}
var n=str.indexOf(“,,”);
if (n>-1) {
Reponse=Reponse.replace(/,,/g,”,”);
var ok=””;
} else {
var ok=”OK”;
}
var n=str.indexOf(“,-“);
if (n>-1) {
Reponse=Reponse.replace(/,-/g,”,”);
var ok=””;
} else {
var ok=”OK”;
}
var n=str.indexOf(“-,”);
if (n>-1) {
Reponse=Reponse.replace(/-,/g,”,”);
var ok=””;
} else {
var ok=”OK”;
}
}
// Découpe le réponse en une table
var laTable=Reponse.split(“,”);
// Traitement de la table
for (var j=0; j // Vérification page simple ou plage
var str=laTable[j];
var n=str.indexOf(“-“);
if (n>-1) {
var debutPlage=Number(str.substring(0,n))-1;
var finPlage=Number(str.substring(n+1))-1;
// Classification
var laPlage=[debutPlage, finPlage];
laPlage.sort(function(a, b){return a-b});
var debutPlage=laPlage[0];
var finPlage=laPlage[1];
} else {
var debutPlage=Number(str)-1;
var finPlage=Number(str)-1;
}
if (debutPlage<0) debutPlage=0;
if (finPlage>this.numPages-1) finPlage=this.numPages-1;
for (var nPage=debutPlage; nPage<=finPlage; nPage++) f=this.addField ("myField", "text", nPage, [200, 600, 300, 660]);
}
}
while (Reponse==””) {
var Reponse=app.response({
cQuestion: “Indiquez les pages où insérer un champ :n• une virgule (,) pour séparer les pages ou les plagesn• un tiret (-) pour séparer les pages des plagesnExemple : 1,3-5,9”,
cTitle: “Liste des pages”,
cLabel: “Pages :”,
cDefault: “”
});
// Test des caractères de la réponse
for (var i=0; i
if (n>57 || (n<48 && n!=44 && n!=45)) Reponse="";
}
}
if (Reponse!=””) {
// Suppression des , ou – en début ou fin de réponse
if (Reponse.startsWith(“,”)) var Reponse=Reponse.substring(1);
if (Reponse.startsWith(“-“)) var Reponse=Reponse.substring(1);
if (Reponse.endsWith(“,”)) var Reponse=Reponse.substring(0,Reponse.length-1);
if (Reponse.endsWith(“-“)) var Reponse=Reponse.substring(0,Reponse.length-1);
// Suppression des incorrects
var ok=””;
while (ok==””) {
var str=Reponse;
var n=str.indexOf(“–“);
if (n>-1) {
Reponse=Reponse.replace(/–/g,”-“);
var ok=””;
} else {
var ok=”OK”;
}
var n=str.indexOf(“,,”);
if (n>-1) {
Reponse=Reponse.replace(/,,/g,”,”);
var ok=””;
} else {
var ok=”OK”;
}
var n=str.indexOf(“,-“);
if (n>-1) {
Reponse=Reponse.replace(/,-/g,”,”);
var ok=””;
} else {
var ok=”OK”;
}
var n=str.indexOf(“-,”);
if (n>-1) {
Reponse=Reponse.replace(/-,/g,”,”);
var ok=””;
} else {
var ok=”OK”;
}
}
// Découpe le réponse en une table
var laTable=Reponse.split(“,”);
// Traitement de la table
for (var j=0; j
var str=laTable[j];
var n=str.indexOf(“-“);
if (n>-1) {
var debutPlage=Number(str.substring(0,n))-1;
var finPlage=Number(str.substring(n+1))-1;
// Classification
var laPlage=[debutPlage, finPlage];
laPlage.sort(function(a, b){return a-b});
var debutPlage=laPlage[0];
var finPlage=laPlage[1];
} else {
var debutPlage=Number(str)-1;
var finPlage=Number(str)-1;
}
if (debutPlage<0) debutPlage=0;
if (finPlage>this.numPages-1) finPlage=this.numPages-1;
for (var nPage=debutPlage; nPage<=finPlage; nPage++) f=this.addField ("myField", "text", nPage, [200, 600, 300, 660]);
}
}
@+
:bonjour: