Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
764 connectés 

  FORUM HardWare.fr
  Graphisme
  PAO / Desktop Publishing

  numerotation automatique

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

numerotation automatique

n°958148
michel85
Posté le 12-06-2007 à 17:28:13  profilanswer
 
Voir ce message dans le sujet non filtré
 

Bonjour je viens de voir ton script pour la numérotation auto de ticket mais je n'arrive pas à le faire fonctionner
quand je le lance il me mets toujours erreur  
que dois-je faire exactement?
que dois-je copier exactement comme script (ou ca commence et fini)
dans quel logiciel je le copie?
merci de ta réponse

ACut a écrit :

Ci-dessous un script JS pour te dépanner.
Il est compatible Indesign CS et CS2, Mac ou Win.
 

Code :
  1. /***************************************************/
  2. /*              DupliTickets.js                    */
  3. /*           tourne sous CS & CS2                  */
  4. /***************************************************/
  5. // !! Toujours sauvegarder votre document AVANT de lancer !!
  6. //----------------------------------------------------------
  7. // GLOBALS
  8. //----------------------------------------------------------
  9. var NUM_PER_PAGE = 4;
  10. var NUM_FORMAT = "000";
  11. var PATTERN = "<([1-9])>"; // les modeles de numeros sont de la forme <n>
  12. //----------------------------------------------------------
  13. // OUTILS
  14. //----------------------------------------------------------
  15. /*int*/ function getPageNb()
  16. //----------------------------------------------------------
  17. {
  18. saisie = prompt("Nombre de tickets à générer", NUM_PER_PAGE);
  19. if (saisie)
  20. {
  21. nTickets = parseInt(saisie);
  22. if ( nTickets<=0 ) return(null);
  23. }
  24. return(Math.ceil(nTickets / NUM_PER_PAGE));
  25. }
  26. /*str*/ function formatNumero(/*str*/ digit, /*int*/ offset)
  27. //----------------------------------------------------------
  28. {
  29. var num = '' + (offset + (digit-0));
  30. var numStr = NUM_FORMAT.substr(num.length) + num;
  31. return(numStr);
  32. }
  33. //----------------------------------------------------------
  34. // METHODES PRINCIPALES
  35. //----------------------------------------------------------
  36. /*void*/ Paragraph.prototype.tryReplaceTicketNum = function(/*int*/ pgNum)
  37. //----------------------------------------------------------
  38. {
  39. var offset = (pgNum-1) * NUM_PER_PAGE;
  40. RE = new RegExp(PATTERN, "gi" );
  41. pText = this.contents;
  42. if ( (results = RE.exec(pText)) != null )
  43. {
  44. ticketNum = formatNumero(results[1], offset);
  45. range = [results.index, results.index + results[0].length - 1];
  46. this.characters.itemByRange(range[0],range[1]).contents = ticketNum;
  47. }
  48. }
  49. /*void*/ Page.prototype.setTicketNums = function(/*int*/ pgNum)
  50. //----------------------------------------------------------
  51. {
  52. var pgItems = this.allPageItems;
  53. for (var i=pgItems.length-1 ; i>=0 ; i--)
  54. if ( pgItems[i] instanceof TextFrame )
  55.  for (var j=pgItems[i].paragraphs.length-1 ; j>= 0 ; j--)
  56.   pgItems[i].paragraphs[j].tryReplaceTicketNum(pgNum);
  57. }
  58. //----------------------------------------------------------
  59. // PROGRAMME
  60. //----------------------------------------------------------
  61. if ( app.documents.length > 0 )
  62. {
  63. var PAGE1 = app.activeDocument.pages.firstItem();
  64. var NPAGES = getPageNb();
  65. if (NPAGES)
  66.  {
  67.  for (p=2 ; p<=NPAGES ; p++)
  68.   {
  69.   pg_p = PAGE1.duplicate(LocationOptions.atEnd);
  70.   pg_p.setTicketNums(p);
  71.   }
  72.  PAGE1.setTicketNums(1);
  73.  }
  74. }
  75. else
  76. alert("Aucun document ouvert!" );


 
MODE D'EMPLOI
 
1) Fais un copier-coller du code dans un fichier nommé par exemple DupliTickets.js
    (tu peux aussi mettre le suffixe jsx pour CS2)
 
2) Place le fichier dans le dossier %InDesign%/Presets/Scripts
    (le script sera alors accessible depuis la palette Scripts d'InDesign)
 
3) Utilisation:
 
- ta page modèle doit être la première page du document;
 
- remplace les numéros indiqués dans la page-modèle par les marqueurs suivants:
  <1>, <2>, <3>, <4>
  (Le programme recherche le motif <n>, où n est entre 1 et 9: le script permet donc de gérer si besoin jusqu'à 9 tickets par page, cf. la variable NUM_PER_PAGE)
 
- ATTENTION: sauvegarde ton document modèle avant de lancer le script, car son action n'est pas réversible
 
- il est possible de moduler les paramètres suivants:
  NUM_PER_PAGE indique le nombre de tickets par page (=4 par défaut)
  NUM_FORMAT indique le nombre de chiffres à utiliser pour former un numéro (="000" par défaut)
 
- une fois lancé, le script te demande le nombre total de tickets à générer. En fait, il en déduit le nombre de pages correspondant et remplit entièrement toutes les pages générées. Par exemple, si tu veux 13 tickets, il va en fait construire 4 pages, d'où 16 tickets.
 
- la complexité des blocs et/ou groupes constitutifs d'un ticket est sans incidence, du moment que le script trouve ses marqueurs <n>. Rien ne t'empêche d'ailleurs de construire un modèle de ticket où la numérotation apparaît à plusieurs endroits, il suffit de répéter <n> partout où c'est utile.
 
Voilà. J'espère que ça te fera gagner du temps.


mood
Publicité
Posté le 12-06-2007 à 17:28:13  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Graphisme
  PAO / Desktop Publishing

  numerotation automatique

 

Sujets relatifs
décompte automatique des jours en Flashnumérotation des pages indesign
[ Indesign ] renvoie de page automatiqueNumérotation indesign..Help!
Polices gestion automatique par formes?numérotation des pages dans Indesign et saisie de blocs superposés
redimention automatique d'imagescomment faire une video automatique sur bryce 5?
Collez des images sur une meme pages de maniere automatique ?colorisation automatique...
Plus de sujets relatifs à : numerotation automatique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR