Donnez vie à vos documents numériques !
 

Numérotation de page automatique

abracadabraPDF Forums PDF – Général Numérotation de page automatique

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45425
    bebarth
    Maî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:

Affichage de 25 réponses de 1 à 25 (sur un total de 25)
  • Auteur
    Réponses
  • #60738
    Merlin
    Maître des clés

    Bonjour.

    Essaye ça :

    Code:
    var numeroPageCourante = this.pageNum+=1;
    var totalPage = this.numPages;
    event.target.value = “Page ” + numeroPageCourante + “/” + totalPage;
    #60739
    bebarth
    Maître des clés

    Bonsoir 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:

    #60740
    Merlin
    Maître des clés

    Oui, 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.

    #60741
    bebarth
    Maître des clés

    bonjour 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:

    #60742
    bebarth
    Maître des clés

    bonsoir,
    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:

    #60743
    Merlin
    Maître des clés

    Dans 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:

    #60744
    bebarth
    Maître des clés

    this.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:

    #60745
    Merlin
    Maître des clés

    Je 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:

    #60746
    bebarth
    Maître des clés

    oui, 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:

    #60747
    Merlin
    Maître des clés

    Les grands esprits se rencontrent !
    :Smiley03:

    #60748
    Ancha2222
    Membre

    Bonjour à 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:

    #60749
    Ancha2222
    Membre

    Pour 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 !

    #60750
    bebarth
    Maître des clés

    bonjour,
    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:

    #60751
    Ancha2222
    Membre

    bonjour 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 ?

    #60752
    bebarth
    Maître des clés

    bonjour,
    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:

    #60753
    Ancha2222
    Membre

    alors 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 !

    #60754
    bebarth
    Maître des clés

    oui 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:

    #60755
    Ancha2222
    Membre

    oui 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:

    #60756
    Ancha2222
    Membre

    bon 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:

    #60757
    bebarth
    Maître des clés

    A 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:

    #60758
    Ancha2222
    Membre

    sisi 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:

    #60759
    Ancha2222
    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…..

    #60760
    bebarth
    Maître des clés

    Quel 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:

    #60761
    bebarth
    Maître des clés

    bonjour,
    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:

    #60762
    Ancha2222
    Membre

    Bonjour,

    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 mal :)

    mon formulaire est prêt, merci pour tout !

Affichage de 25 réponses de 1 à 25 (sur un total de 25)
  • Vous devez être connecté pour répondre à ce sujet.