Donnez vie à vos documents numériques !
 

Ajouter numérotation après un ajout de page modèle

abracadabraPDF Forums PDF – Général Ajouter numérotation après un ajout de page modèle

  • Créateur
    Sujet
  • #73221
    jctremblay
    Participant

    Bonjour,

    Dans un PDF, j’ai une page avec trois champs avec les valeur «1», «2», «3»… j’ai besoin d’un modèle de cette page, puis que lorsque le modèle est ajouter à l’aide d’un bouton, que les valeurs de ses trois champs deviennent «4», «5», «6», l’ajout suivant «7», «8», «9», etc.

    Je suis perdu, aucune idée de fabriqué cette logique. PDF et modèle en pièces jointes

    Attachments:
    You must be logged in to view attached files.
Affichage de 14 réponses de 1 à 14 (sur un total de 14)
  • Auteur
    Réponses
  • #73224
    bebarth
    Maître des clés

    bonjour,
    Tu peux utiliser l’indice du préfixe de la page dupliquée !

    @+
    😎

    #73231
    jctremblay
    Participant

    This seems to be working… the nbField variable is the number of fields on that page affected. Is there a better way of doing it?
    var expTplt = getTemplate("page");

    expTplt.spawn(numPages,true,false);

    var pageIndex = this.pageNum;

    var prefix = "P" + pageIndex;

    var nbField = pageIndex + 3;

    this.getField(prefix +".page.A").value = nbField + 1;

    this.getField(prefix +".page.B").value = nbField + 2;

    this.getField(prefix +".page.C").value = nbField + 3;

    • Cette réponse a été modifiée le il y a 1 année et 2 mois par jctremblay.
    • Cette réponse a été modifiée le il y a 1 année et 2 mois par jctremblay.
    #73234
    jctremblay
    Participant

    Mes maths n’étaient pas correct… 😃 ceci fonctionne. (PDF joint pour les curieux)

    var pageIndex = this.pageNum;
    var prefix = “P” + pageIndex;
    var nbField = 3;
    this.getField(prefix +”.page.A”).value = pageIndex * nbField + 1;
    this.getField(prefix +”.page.B”).value = pageIndex * nbField + 2;
    this.getField(prefix +”.page.C”).value = pageIndex * nbField + 3;

    Attachments:
    You must be logged in to view attached files.
    #73236
    jctremblay
    Participant

    Je me suis réjouis trop vite…
    En réalité, je vais avoir «4 liste» numérotés à configurer. Utiliser le pageIndex ne fonctionneras plus car les pages ne seront pas dupliquer toujours le même nombres ni le même ordre (voir l’image). Il me faudrais une façon de calculer le nombre de pages d’un templates spécifique, et d’utiliser ce nombre pour les calcules.

    Une idée de comment faire ça?

    Attachments:
    You must be logged in to view attached files.
    #73240
    bebarth
    Maître des clés

    bonjour,
    Tu peux stocker des variables dans des champs invisibles que tu mets en page 1 ou les enregistrer en script de document.

    @+
    😎

    #73241
    Merlin
    Maître des clés

    Bonjour JC

     

    En fait il me manque des éléments pour pouvoir te répondre.

    Les pages à dupliquer sont elles toutes identiques ou bien ont elles un contenu différent ?

    L’utilisateur a-t-il moyen de supprimer les pages dupliquées et si oui comment ?

     

    Une autre piste serait d’avoir les 12 pages en templates, chacune ayant déjà ses numéros, ses champs et son contenu figé. Ensuite il ne resterait plus qu’à les dupliquer une par une sans renommage des champs.

     

    #73242
    jctremblay
    Participant

    Les pages à dupliquer sont elles toutes identiques ou bien ont elles un contenu différent ? Contenu différent 

    L’utilisateur a-t-il moyen de supprimer les pages dupliquées et si oui comment ? Non, sinon qu’avec le navigateur de page

    Dans l’image, un utilisateur pour dupliquer la section jaune, par exemple, dix fois. Donc, il y aurait plus que douze pages.

    Une solution encore plus simple serait de laisser l’utilisateur entrer même les numéros. Cela risque d’être ma solution considérant le temps que j’ai a y mettre. 😀

    #73243
    Merlin
    Maître des clés

    Je ne comprend pas si la numérotation de ces trois champs doit être continue dans tout le document ou bien est-ce qu’elle doit repartir à 1 dans chaque section/couleur ?

     

    L’utilisateur a-t-il moyen de supprimer les pages dupliquées et si oui comment ? Non, sinon qu’avec le navigateur de page

    Est-ce que ça fonctionne dans Acrobat Reader ?
    (Je ne peux pas tester)

    #73244
    jctremblay
    Participant

    Un compteur par couleur (donc quatre au total dans ce document).
    Pour ce qui est de supprimer les pages. En fait, non, ils ne pourrons pas. (Reader ne le permet pas, à moins de leurs offrir un bouton/script).

    #73245
    jctremblay
    Participant

    C’est fait (le prototype en pièce jointe). J’ai placé mes variables de compteurs sur la page 1 (ils seront invisibles au final). Puis, chaque page (2,3,7 et 8) avec un compteur est un modèle avec un bouton. Pour la page 2, comme ceci:

    var expTplt = getTemplate("p2");
    expTplt.spawn(this.pageNum+1,true,false);
    var newCount = parseInt(this.getField("counterP2").value + 3);
    this.getField("counterP2").value = newCount;
    var pageIndex = this.pageNum;
    var prefix = "P" + pageIndex;
    this.getField(prefix +".p2.p2_1").value = newCount;
    this.getField(prefix +".p2.p2_2").value = newCount + 1;
    this.getField(prefix +".p2.p2_3").value = newCount + 2;

    Dommage, le client à changer d’idée! 😐

    Attachments:
    You must be logged in to view attached files.
    #73248
    Merlin
    Maître des clés

    Chez moi ça ne fonctionne pas car par exemple avec le bouton page 2: prefix vaut “P1”, carvar pageIndex = this.pageNum;

    Et parce-que le compte de pageNum commence à zéro il faut ajouter +1

     

    Ce qui donne pour le bouton de la page 2 :

    var expTplt = getTemplate("p2");
    expTplt.spawn(this.pageNum+1,true,false);

    var newCount = parseInt(this.getField("counterP2").value + 3);
    this.getField("counterP2").value = newCount;

    var pageIndex = this.pageNum +1;
    var prefix = "P" + pageIndex;
    console.println("prefix: " + prefix); // retour console
    this.getField(prefix +".p2.p2_1").value = newCount;
    this.getField(prefix +".p2.p2_2").value = newCount + 1;
    this.getField(prefix +".p2.p2_3").value = newCount + 2;

    Attachments:
    You must be logged in to view attached files.
    #73250
    jctremblay
    Participant

    Pour moi ça fonctionne… dans le PDF la page 2 [pageindex 1] (le modèle) lorsque copier, devient la page 3 [pageindex 2] et les champs dupliquer sont avec un P2. au début.

    Si j’utilise var pageIndex = this.pageNum +1;

    La console me donne ceci et les champs à modifier ne sont pas reconnue
    prefix: P3
    TypeError: this.getField(…) is null

    #73251
    Merlin
    Maître des clés

    C’est très étrange…

    #73252
    jctremblay
    Participant

    En effet! 😕

    Pas de rapport, mais j’ai ajouté un this.resetForm(prefix); avant de remplir les champs de numérotation, car dans mon doc actuel cela m’assurer de réinitialiser le contenue des modèles dupliquer (je n’utilise pas ici de modèle caché).

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