abracadabraPDF › Forums › PDF – Général › Récupérer numéro de page dans champs de texte
- Ce sujet contient 15 réponses, 2 participants et a été mis à jour pour la dernière fois par WilliS4R, le il y a 2 années et 1 mois.
-
CréateurSujet
-
28 janvier 2015 à 15:14 #45058Donald69Membre
Bonjour a tous et merci pour votre site qui m’a super bien aider,
J’ai créé un document où j’ajoute des pages en cliquant sur un bouton . Je viens vers vous pour savoir si il existe un script qui récupère le numéro de page du document sur le nombre de page total du document afin de pouvoir numéroter les pages automatiquement au fur et a mesure que je les ajoutes.
Merci beaucoup
-
CréateurSujet
-
AuteurRéponses
-
28 janvier 2015 à 17:25 #58298MerlinMaître des clés
Bonjour,
Sur le modèle de page il faut placer un champ de texte auquel on incorpore un script qui lui fait afficher le numéro de la page courante.
A placer en script de calcul personnalisé (onglet Calcul) :
Code:event.target.value = this.pageNum+1;(+1 parce-que JavaScript commence le compte à zéro)
28 janvier 2015 à 18:34 #58299Donald69MembreMerci beaucoup j’essaye ça demain. Je vais abuser de votre gentillesse, pour le champ de texte qui affiche le nombre total de page vous avez un script, svp?
Merci beaucoup encore
29 janvier 2015 à 14:52 #58300brumbiesMembreBonjour,
le script est
Code:event.target.value = this.numPages;:Smiley01:
29 janvier 2015 à 17:47 #58301Donald69MembreBonjour et encore merci.
J’ai intégré les deux scripts mais ca marche que 1/2
Je vous joint un exemple de ce que je veux faire.
30 janvier 2015 à 09:23 #58302brumbiesMembreBonjour,
J’ai modifié ton fichier et ca devrait répondre à ton besoin.
j’ai supprimé le code présent sur ton champ “numeropage1” car this.pageNum revoit systématiquement le numéro de la page ou le focus est présent, raison pour laquelle tous tes champs indiquaient le même chiffre.
pour palier ça j’ai modifier le code présent dans ton bouton comme suit :
Code:this.getField(“numeropage1”).value = this.numPages + 1; // affecte au champ “numeropage1” le numéro de la page
this.spawnPageFromTemplate(“annexe”, this.numPages, true); // duplique le modèle de page “annexe” en renommant tous les champs de formulaire
// + insère la page systématiquement en fin de document
this.pageNum = 0; // remet le focus sur la 1ère pagel’ensemble des champs sur tes différentes pages ont un nom différent grace au paramètre “true” de spawnPageFromTemplate
associer au fait de venir affecter à ton champs initial “numeropage1” le nombre total de page +1 permet de conserver le numéro de page distinctement sur l’ensemble des pages ajoutées.:Smiley01:
4 février 2015 à 09:26 #58303Donald69MembreDésolé du temps de réponse mais c’est nickel.
Merci beaucoup.23 septembre 2021 à 07:43 #58304ALFBMembreBonjour,
J'ai modifié ton fichier et ca devrait répondre à ton besoin.
j'ai supprimé le code présent sur ton champ “numeropage1” car this.pageNum revoit systématiquement le numéro de la page ou le focus est présent, raison pour laquelle tous tes champs indiquaient le même chiffre.
pour palier ça j'ai modifier le code présent dans ton bouton comme suit :
Code:this.getField(“numeropage1”).value = this.numPages + 1; // affecte au champ “numeropage1” le numéro de la page
this.spawnPageFromTemplate(“annexe”, this.numPages, true); // duplique le modèle de page “annexe” en renommant tous les champs de formulaire
// + insère la page systématiquement en fin de document
this.pageNum = 0; // remet le focus sur la 1ère pagel'ensemble des champs sur tes différentes pages ont un nom différent grace au paramètre “true” de spawnPageFromTemplate
associer au fait de venir affecter à ton champs initial “numeropage1” le nombre total de page +1 permet de conserver le numéro de page distinctement sur l'ensemble des pages ajoutées.:Smiley01:
Bonjour, je ressors ce vieux sujet des placards et merci pour ce script bien utile.
Par contre si j'ai 4 annexes et que je supprime l'annexe N° 3, l'annexe n° 4 affiche encore n°4 et non n°3. Comment faire cette mise à jour automatiquement pour les numéros correspondent toujours aux bons numéros de pages ?23 septembre 2021 à 07:57 #58305brumbiesMembreBonjour,
Pour que cela soit plus parlant, peux-tu joindre ton fichier ? :Smiley08:23 septembre 2021 à 08:16 #58306ALFBMembreEt voilà en PJ:
En bas à gauche de la première page il y a un bouton “ajouter photo”. Lorsque je clique dessus, une nouvelle page est ajoutée (à partir du modèle).Je peux donc ajouter plusieurs pages. J'ai également mis un bouton “supprimer cette page” sur la page modèle.Exemple j'ai ajouté 3 pages et je veux supprimer la seconde. Avec le script actuel, le champ texte affichant le n° de page, gardera le N° 4 et n'est pas mis à jour suite à la suppression de la page précédente.J'espere avoir été assez explicite (pas toujours évident par écrit) mais pour moi c'est clair :jerisjaune:
23 septembre 2021 à 10:53 #58307bebarthMaître des clésbonjour,
Dans le script de ton bouton “Supprimer cette page”, tu supprimes la ligne “this.getField(“Text3”).value = this.numPages;“. De plus, “this.numPages” est le nombre de pages du document et non la page courante.
En script de calcul du champ “Text3” de ta page modèle, tu écris : “event.target.value=this.pageNum+1;“, et en script d'action d'ouverture de page “this.calculateNow();“.
cf. fichier joint.
@+
:bonjour:23 septembre 2021 à 11:28 #58308ALFBMembreC'est juste parfait :bravo:
Merci Bonne journée et vive abracadabrapdf23 novembre 2022 à 17:39 #72029WilliS4RParticipantBonjour à vous,
Un fervent admirateur de votre site qui revient vers vous pour éclairer ma lanterne.
J’ai tenté de m’inspirer des échanges mais les PJ ont disparues
Dans mon formulaire en pj, je souhaite insérer le modèle (1 page seulement si nécessaire) après la page 3.
Et si j’arrive à l’insérer en dernière page, je n’arrive pas à l’insérer entre 3 et 4 et je n’arrive pas à obtenir le bon numéro de pages.
Merci par avance pour vos éclairages
Attachments:
You must be logged in to view attached files.23 novembre 2022 à 18:48 #72032MerlinMaître des clés“spawnPageFromTemplate” est obsolète et n’est pas supporté par la plupart des logiciels non Adobe (Foxit, PDF Studio, etc.).
Il faut lui préférer “getTemplate” + “spawn” :
https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/doc.html#gettemplate
Le template doit se placer en page 4, dans ce cas précis c’est aussi l’avant-dernière page donc il suffit d’ajouter “-1”.
this.getField("page_3").value = this.numPages + 1;
this.getTemplate("JALONS").spawn(this.numPages-1, true, false);
this.pageNum = 3;
event.target.display = display.hidden;
24 novembre 2022 à 10:00 #72043WilliS4RParticipantBonjour,
C’est parfait. Quelle rapidité 🙂
Dernière question, une fois le masque inséré, je souhaiterai pouvoir donner la possibilité aux utilisateurs de supprimer la page insérée. Est-ce possible ?
Bonne journée,
WR
24 novembre 2022 à 10:52 #72044MerlinMaître des clésAvant de la supprimer on s’assure que la page supplémentaire a bien été générée, sinon ça supprimerait une page statique du document (dans Pro et Standard) ou ça ne fonctionnerait pas (dans Reader, qui ne peut supprimer que des pages “spawnées”, pas les pages statiques) :
if (this.numPages > 4) { // s'il y a plus que 4 pages
this.deletePages({nStart: 3, nEnd: 3}); // suppresion de la page 4
}
25 novembre 2022 à 15:49 #72054WilliS4RParticipantBonjour,
Merlin merci pour ta réponse. C’est parfait comme toujours !
Je ferai donc apparaître ce bouton à l’issue de la création de la page. top !
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.