abracadabraPDF › Forums › PDF – Général › Numérotation de page automatique
- Ce sujet est vide.
-
CréateurSujet
-
2 juin 2016 à 14:53 #45425bebarthMaître des clés
bonjour,
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 #60738MerlinMaître des clés
Bonjour.
Essaye ça :
Code:var numeroPageCourante = this.pageNum+=1;
var totalPage = this.numPages;
event.target.value = “Page ” + numeroPageCourante + “/” + totalPage;3 juin 2016 à 20:50 #60739bebarthMaî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 #60740MerlinMaî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 #60741bebarthMaî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 #60742bebarthMaî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 < this.numFields; 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 #60743MerlinMaî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 #60744bebarthMaî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 #60745MerlinMaî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 #60746bebarthMaî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 #60747MerlinMaître des clésLes grands esprits se rencontrent !
:Smiley03:9 juin 2016 à 12:23 #60748Ancha2222MembreBonjour à 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 #60749Ancha2222MembrePour 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 #60750bebarthMaître des clésbonjour,
voici le script que j’ai adapté :var nmch=””;
var dbch0=””;
var dbch1=””;
var dbch2=””;
for (var i = 0; i < this.numFields; 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 #60751Ancha2222Membrebonjour 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 #60752bebarthMaî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 #60753Ancha2222Membrealors 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 < this.numFields; 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 #60754bebarthMaî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 #60755Ancha2222Membreoui 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 #60756Ancha2222Membrebon 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 #60757bebarthMaî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 #60758Ancha2222Membresisi 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 #60759Ancha2222Membre: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 #60760bebarthMaî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 #60761bebarthMaî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 #60762Ancha2222MembreBonjour,
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.