abracadabraPDF › Forums › PDF – Général › Numérotation de page automatique
- Ce sujet est vide.
-
CréateurSujet
-
2 juin 2016 à 14:53 #45425
bebarth
Maître des clésbonjour,
Je voudrais créé un bas de page avec numérotation automatique genre « Page 3/4 ».
J’ai donc tout bêtement écris event.target.value = »Page « +(this.pageNum+1)+ »/ »+this.numPages; en script de calcul, mais cela ne fonctionne pas. Le même numéro de page s’affiche sur toutes les pages !
De plus, je voudrais mettre le champ sur un modèle…
une solution ?
merci
:Euuuh: -
CréateurSujet
-
AuteurRéponses
-
3 juin 2016 à 08:58 #60738
Merlin
Maître des clésBonjour.
Essaye ça :
Code:var numeroPageCourante = this.pageNum+=1;
var totalPage = this.numPages;
event.target.value = « Page » + numeroPageCourante + « / » + totalPage;3 juin 2016 à 20:50 #60739bebarth
Maître des clésBonsoir Merlin
et merci pour ta réponse qui malheureusement donnait le même résultat.
Après quelques temps de réflexion :doute: j’ai écris le script :
this.getField(« Bas de page »).value = »Page « +(this.pageNum+1)+ »/ »+this.numPages;
en script d’ouverture de page dans les propriétés de la page. Et là, ça fonctionne… à l’écran parce qu’à l’impression tous les bas de pages sont identiques (normal vu le nom du champ est identique).
J’ai donc essayé avec des noms ce champs différents (Bas de page_1, Bas de page_2,…). Et ça fonctionne maintenant très bien en impresssion également sur mon document original qui ne comporte que 4 pages. Mais j’ai une page modèle, donc possibilité d’ajouter de nouvelles pages. Le script de pagination aura donc le même nom de champ que la page modèle… retour à la case départ. Pour chaque nouvelle page, il faudrait modifier le nom du champ et le script d’ouverture de page :Euuuh:
Si tu as une idée, je suis preneur !
merci.
:bonjour:4 juin 2016 à 08:57 #60740Merlin
Maître des clésOui, bien entendu il faut que les champs n’aient pas le même nom.
La fonction spawnPageFromTemplate a un paramètre qui permet de renommer les champs sur chaque nouvelle page générée, le bRename
bRename (optional) : Specifies whether fields should be renamed. The default is true.
4 juin 2016 à 09:16 #60741bebarth
Maître des clésbonjour Merlin,
j’ai bien compris, mais il faudrait également changer le nom du champ dans le script d’ouverture de page…
this.getField(« Bas de page.0 »).value =…
this.getField(« Bas de page.1 »).value =…
this.getField(« Bas de page.2 »).value =…
…
et ça je ne sais comment faire !
@+
:bonjour:6 juin 2016 à 21:06 #60742bebarth
Maître des clésbonsoir,
Voici ce que j’ai trouvé :
Tous mes champs de bas de pages se nomment « Bas de page… » donc je recherche tous les noms de champs qui commencent par « Bas » et donne la valeur souhaitée à ces champs.var nmch= » »;
var dbch= » »;
for (var i = 0; i {var nmch=this.getNthFieldName(i);
var dbch=nmch.slice(0,3)
if(dbch== »Bas »)
{var f = this.getField(nmch);
var pg=f.page;
this.getField(nmch).value= »Page « +(pg+1)+ »/ »+this.numPages;}
}Ce qui m’embête un peu (mais sans plus…), c’est que this.getNthFieldName vérifie tous les noms de champs du document. ne serait-il pas possible de rechercher uniquement sur la page courante ?
Merci.
:doute:7 juin 2016 à 11:05 #60743Merlin
Maître des clésDans la mesure où tu dois numéroter toutes les pages je ne vois pas l’intérêt de ne tester les champs que sur une seule… :Euuuh:
7 juin 2016 à 12:50 #60744bebarth
Maître des clésthis.numPages change automatiquement et sans problème.
comme je rajoute à chaque fois une page à la fin du document, c’était juste pour tester le nom du champ et numéro de page uniquement sur la dernière page.
je vais donc lancer le script sur la totalité du document uniquement lorsque je rajoute une page, et non en propriété de page comme je le prévoyait précédemment.
merci.
:bonjour:7 juin 2016 à 13:03 #60745Merlin
Maître des clésJe ne sais pas si c’est possible de la façon dont tu le prévoyais, par-contre si tous les champs d’une même page ont le même préfixe ça devient plus facile.
Et justement, quand on génère une nouvelle page, ça ajoute un suffixe à tous les champs qui se trouvent dessus…
:Smiley03:7 juin 2016 à 14:29 #60746bebarth
Maître des clésoui, c’est pour cela qu’avec le script ci-dessous ça fonctionne très bien alors que si l’on veut utiliser this.pageNum pour le numéro de page, ça ne fonctionne pas !
:bonjour:7 juin 2016 à 15:12 #60747Merlin
Maître des clésLes grands esprits se rencontrent !
:Smiley03:9 juin 2016 à 12:23 #60748Ancha2222
MembreBonjour à vous,
Je souhaiterais utiliser ce script mais je ne sais pas ou je dois le placer dans mon formulaire, est ce sur un champ de texte ?
(impossible de charger mon formulaire, il est trop volumineux).Merci !
Ancha, novice :joker:9 juin 2016 à 12:49 #60749Ancha2222
MembrePour aider j’ai fait une capture d’écran.
Donc, je voudrais implémenter le numéro de page en haut à droite dans le bandeau.
Sauf que j’ai un modèle de page qui reproduit la page 2 à l’identique grâce au bouton ‘add history’ en bas. Je voudrais que le numéro de page « n » et le numéro de page total « N » s’incrémentent automatiquement à chaque fois que je clique sur le bouton ‘add history’.Merci encore !
PS, mon formulaire doit être prêt pour mi-juin !
9 juin 2016 à 21:28 #60750bebarth
Maître des clésbonjour,
voici le script que j’ai adapté :var nmch= » »;
var dbch0= » »;
var dbch1= » »;
var dbch2= » »;
for (var i = 0; i {var nmch=this.getNthFieldName(i);
var dbch0=nmch.slice(0,5);
var dbch1=nmch.slice(15,20); //Préfixe pour Template_BB <10
var dbch2=nmch.slice(16,21); //Préfixe pour Template_BB ?10 et <100
if(dbch0== »Page_ » | dbch1== »Page_ » | dbch2== »Page_ »)
{var f = this.getField(nmch);
var pg=f.page;
this.getField(nmch).value= » »;
this.getField(nmch).value= »Page « +(pg+1)+ »/ »+this.numPages;}
}je l’ai placé sur le bouton de duplication de page plus en script d’ouverture de page de la première page.
si tu ne comprends pas, j’expliquerai plus en détail.
tu peux insérer jusqu’à 99 pages.
c’est la façon la plus simple que j’ai trouvé car le n’ai pas réussi à utiliser la fonction string.includes() pour tester que « Page_ » est bien dans le nom du champ.
je vais me renseigner.
@+
:bonjour:10 juin 2016 à 07:40 #60751Ancha2222
Membrebonjour et merci de ton aide !
j’ai copié le script au niveau du bouton « add history ».
j’ai donc le premier script pour ajouter une page en « souris enfoncée », puis le 2ème pour le numéro de page en « souris relachée ».
par contre ça ne change rien, rien ne s’affiche.qu’est ce que je n’ai pas fait ?
Est ce qu’il faut que je mette un numéro de page en en tête ? un champs de texte, autre chose ?10 juin 2016 à 08:10 #60752bebarth
Maître des clésbonjour,
1) Il faut retravailler un peu le script car dans mon exemple le modèle s’appelle « Template_BB ». Selon le nom de ton modèle (la longueur du nom en fait) il faut modifier nmch.slice(x,y)
2) Il faut également que le champ texte où s’affiche la pagination se nomme « Page_1 », « Page_2″…
essaye ça et tu me dis !
@+
:bonjour:10 juin 2016 à 10:04 #60753Ancha2222
Membrealors j’ai copié le script, remplacé Template_BB par history (le nom de mon modèle)
var nmch= » »;
var dbch0= » »;
var dbch1= » »;
var dbch2= » »;
for (var i = 0; i {var nmch=this.getNthFieldName(i);
var dbch0=nmch.slice(0,5);
var dbch1=nmch.slice(15,20); //Préfixe pour history <10
var dbch2=nmch.slice(16,21); //Préfixe pour history ?10 et <100
if(dbch0== »Page_ » | dbch1== »Page_ » | dbch2== »Page_ »)
{var f = this.getField(nmch);
var pg=f.page;
this.getField(nmch).value= » »;
this.getField(nmch).value= »Page « +(pg+1)+ »/ »+this.numPages;}
}quand j’ai lancé l’action, ça a marché au niveau de la numérotation :extra: mais par contre gros beug, le formulaire est fichu lol :oh:
j’ai fait une capture de ce que ça affiche.je n’ai pas modifié nmch.slice. il fallait ?
please help !
10 juin 2016 à 10:40 #60754bebarth
Maître des clésoui il faut modifier les valeurs dbch1 et dbch2 par la différence entre la longueur de « Template_BB » et « history », c’est à dire 4 (lettres de différence) :
…
var dbch0=nmch.slice(0,5); //pour les pages dont le nom de champ commence par Page_
var dbch1=nmch.slice(11,16); //Préfixe pour history <10, les pages dont le nom de champ commence par Px.history.Page_
var dbch2=nmch.slice(12,17); //Préfixe pour history ?10 et <100, les pages dont le nom de champ commence par Pxx.history.Page_
…par contre je ne sais pas ce que sont les erreurs… j’espère que tu travailles sur des copies !
@+
:bonjour:10 juin 2016 à 10:56 #60755Ancha2222
Membreoui je travaille sur des copies, heureusement !
et la ça marche !!!!
:bravo: :bravo: :bravo:
merci énormément, tu as illuminé ma journée !
merci d’ailleurs pour l’existence de ce site, de ce forum, j’y ai trouvé plein d’astuces top :Smiley08:
ancha
:bonjour:10 juin 2016 à 11:06 #60756Ancha2222
Membrebon j’ai parlé trop vite.
quand je cache mon modèle de page, ça ne marche plus…
ça affiche : Page 1,21/3
zut :doute:
10 juin 2016 à 11:50 #60757bebarth
Maître des clésA mon avis, la procédure pour créer la page modèle n’a pas été suivie…
Regarde ce post :
http://abracadabrapdf.net/forum/index.php/topic,3015.0.html
et vérifie si la procédure a bien été suivie !!!
@+
:bonjour:10 juin 2016 à 12:32 #60758Ancha2222
Membresisi j’ai tout bien suivi, tout marche très bien, jusqu’à ce que je planque mon modèle en décochant l’œil.
en cherchant, j’ai trouvé, c’est parce je masquais mon modèle avec la valeur de page remplie (page 2/3 par exemple) et donc la ça ne marchait plus.
en tout cas un grand grand merci pour ton aide et ta patience envers la novice que je suis !
:bonjour:10 juin 2016 à 13:57 #60759Ancha2222
Membre:mur: :mur: :mur:
rhaaa ça ne marche pas complètement !
dès que j’ajoute une page, la page 2 ne marche pas, puis la page 4. (ça indique page 1,31/5)
je ne comprends pas…..
10 juin 2016 à 14:08 #60760bebarth
Maître des clésQuel est le nom du champ de la page 1, de la page 2, de ton modèle et des premières pages que tu rajoutes…
je parles des noms des champs Page_
@+
:bonjour:11 juin 2016 à 14:06 #60761bebarth
Maître des clésbonjour,
Dans le nouveau fichier joint, je teste que le champ comprend le texte « Page_ » quel que soit sa position, donc plus de limite de nombre de pages.
pour revenir a ton problème précédent, les noms des champs page 1, Page 2 et sur le modèle doivent être différents. Par exemple dans mon fichier :
Le nom du champ page 1 est « Page_1 » ;
Le nom du champ page 2 est « Page_2 » ;
Le nom du champ sur la page modèle est « Page_3 » ;
tu essayes comme ça et tout devrait fonctionner correctement.
@+
:bonjour:13 juin 2016 à 08:19 #60762Ancha2222
MembreBonjour,
le problème venait de la création de la 1ère page après le modèle : au lieu de mettre P1.history…, ça me mettait directement P2.history, et pareil pour la page d’après donc 2 P2.history. donc ça ne marchait pas.
Par contre, quand tu supprimes une page, par ex la page 5/6, si tu recrées une page après, elle s’intitulera P5.history et non P7.history puis reprendra la numérotation, donc P6.history, P7.history etc.
et donc tu auras 2 P6.history dans ton doc, ce qui crée le pb de numérotation 1.31/7.
au moins tu sais tout de suite si une personne a supprimé une page, ce qui n’est pas plus malmon formulaire est prêt, merci pour tout !
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.