indd : pagination "désautomatisée"

indd : pagination "désautomatisée" - PAO / Desktop Publishing - Graphisme

Marsh Posté le 06-01-2007 à 14:57:15    

Bonjour,
 
apres des recherches infructueuses je souhaite soumettre cette question à la communauté :
 
dans la maquette indd que j'ai créé, j'ai pieusement utilisé la numerotation automatique (un bloc texte sur les pages gabarit etc), soigneusement liberé les éléments de gabarit et maintenant je dois faire mon montage pour impression recto verso (non professionnelle donc je dois m'en occuper)
 
Lorsque je bouge mes pages, je voudrais que le numero de page, lui, ne change pas.  
 
Il me semblait avoir trouvé la solution il y a qq temps mais j'ai oublié.
 
Merci d'avance pour vos réponses éclairées.
 
charlotte

Message cité 1 fois
Message édité par chatbebop le 06-01-2007 à 15:09:02
Reply

Marsh Posté le 06-01-2007 à 14:57:15   

Reply

Marsh Posté le 08-01-2007 à 17:05:53    

chatbebop a écrit :

Bonjour,
 
apres des recherches infructueuses je souhaite soumettre cette question à la communauté :
 
dans la maquette indd que j'ai créé, j'ai pieusement utilisé la numerotation automatique (un bloc texte sur les pages gabarit etc), soigneusement liberé les éléments de gabarit et maintenant je dois faire mon montage pour impression recto verso (non professionnelle donc je dois m'en occuper)
 
Lorsque je bouge mes pages, je voudrais que le numero de page, lui, ne change pas.  
 
Il me semblait avoir trouvé la solution il y a qq temps mais j'ai oublié.
 
Merci d'avance pour vos réponses éclairées.
 
charlotte


 
Je parie qu'il y a une solution super simple mais comme je suis crevé aujourd'hui voilà une solution super compliquée:
 

Code :
  1. //--------------------------------------------------------------------
  2. //    CONSTANTS
  3. //--------------------------------------------------------------------
  4. var ENUM_LOCAL_FRENCH = 1279477362;      // = Locale.frenchLocale
  5. var APP_VERSION =   parseInt(app.version);   // CS == 3 | CSx > 3
  6. var AUTO_PAGE_CAR =  '^#';       // Car spe pour folio auto
  7. //--------------------------------------------------------------------
  8. //    SCRIPT GLOBAL SETTINGS & PREFERENCES
  9. //--------------------------------------------------------------------
  10. var SCRIPT_NAME = "FreezeAutoPages";
  11. var SCRIPT_VERSION = "1.0";
  12. var LANG = (app.locale == ENUM_LOCAL_FRENCH) ? 1 : 0;
  13. //--------------------------------------------------------------------
  14. //    LINGUISTICS (DIALOGS)
  15. //--------------------------------------------------------------------
  16. var DLG_NO_DOCUMENT =
  17. [
  18. "You must open a document before launching " + SCRIPT_NAME,
  19. "Vous devez ouvrir un document avant de lancer " + SCRIPT_NAME,
  20. ];
  21. var DLG_NO_FOLIO_FOUND =
  22. [
  23. "No page number found",
  24. "Aucun folio trouvé"
  25. ];
  26. var DLG_BROKEN_FOLIOS =
  27. [
  28. "page numbers frozen",
  29. "folios traités"
  30. ];
  31. //--------------------------------------------------------------------
  32. //    OBJECT METHODS
  33. //--------------------------------------------------------------------
  34. /*obj*/  Object.prototype.getTextFrame = function()
  35. //----------------------------------------------------------
  36. // Try to return the parent textframe of 'this' (supposed to be Text or derived)
  37. // Tente de renvoyer le bloc-texte parent de 'this' (Text ou assimilé)
  38. // Ret. null IF error
  39. {
  40. try
  41. {
  42. if (APP_VERSION > 3)
  43.  {
  44.  return(this.parentTextFrames[0]);
  45.  }
  46. else
  47.  {
  48.  return(this.parentTextFrame);
  49.  }
  50. }
  51. catch(ex)
  52. {
  53. }
  54. return(null);
  55. }
  56. /*obj*/  Object.prototype.getPage = function()
  57. //----------------------------------------------------------
  58. // If this is a page/spread child, returns this page/spread
  59. //   Else, search the top-level container of this & returns its page/spread
  60. // Si this est enfant d'une page ou d'un spread, renvoie cette page/spread
  61. //   Sinon, recherche le conteneur de plus haut niveau et renvoie sa page/spread
  62. // NB: this est un obj quelconque selectionnable
  63. // Ret. null IF error
  64. {
  65. try {
  66. switch(this.parent.constructor.name)
  67.  {
  68.  case "Page" :
  69.   // cas simple du PageItem de surface
  70.   return(this.parent);
  71.  case "Spread" :
  72.   // Un Spread n'a pas de folio -> ignorer
  73.   return(null);
  74.  case "Story" :
  75.   // texte, pt d'insertion -> rech. TextFrame corresp.
  76.   return(this.getTextFrame().getPage());
  77.  case "Character" :
  78.   // cas special d'un composant insere comme caractere ->
  79.   // rech. le TextFrame parent du caractere
  80.   return(this.parent.getTextFrame().getPage());
  81.  default:
  82.   // par defaut: remontee vers le parent
  83.   return(this.parent.getPage());
  84.  }
  85. }
  86. catch(ex)
  87. {}
  88. return(null);
  89. }
  90. //--------------------------------------------------------------------
  91. //    APPLICATION
  92. //--------------------------------------------------------------------
  93. /*num*/  Document.prototype.freezeAutoPages = function()
  94. //----------------------------------------------------------
  95. {
  96. var results = null;
  97. var pg = null;
  98. var tf = null;
  99. results = this.search(AUTO_PAGE_CAR, true, false);
  100. if (results == null) return(0);
  101. if (results.length == 0) return(0);
  102. var r = 0;
  103. for (var i=results.length-1 ; i>=0 ; i--)
  104.  {
  105.  tf = results[i].getTextFrame();
  106.  if ( tf == null ) continue;
  107.  pg = tf.getPage();
  108.  if ( pg == null ) continue;
  109.  if (pg.parent.constructor.name == "MasterSpread" ) continue;
  110.  results[i].contents = pg.name;
  111.  r++;
  112.  }
  113. return(r);
  114. }
  115. /*void*/ Application.prototype.main = function()
  116. //----------------------------------------------------------
  117. {
  118. if ( this.documents.length == 0 )
  119. {
  120. alert(DLG_NO_DOCUMENT[LANG]);
  121. return;
  122. }
  123. var nw = this.activeDocument.freezeAutoPages();
  124. if ( nw > 0 )
  125. {
  126. alert('' + nw + ' ' + DLG_BROKEN_FOLIOS[LANG]);
  127. }
  128. else
  129. {
  130. alert(DLG_NO_FOLIO_FOUND[LANG]);
  131. }
  132. }
  133. app.main();


 
Le code est bien sûr à copier-coller dans un fichier texte suffixé .js (ou .jsx).
Tu mets le fichier dans %InDesign%/Presets/Scripts/ et tu exécutes le script (depuis la palette Scripts) sur ton document actif.
C'est une première approche mais ça devrait faire ce que tu veux, en supposant que les blocs contenant les folios soient bien désolidarisés de la page-type (MasterSpread). (NB: on pourrait évidemment faire un script plus complet qui s'occuperait aussi de désolidariser en amont)...


Message édité par ACut le 08-01-2007 à 17:08:01

---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
Reply

Marsh Posté le 09-01-2007 à 14:15:11    

ouah ! bon et bien merci, des que je reviens sur mon ordi j'essaie.
Je ne savais meme pas qu'on pouvait faire des trucs comme ça dans indd. Tu m'ouvre un univers infini (et que je n'explorerais jamais mais c est tjs bon à savoir)
 
merci encore, je reposte quand j aurais essayé

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed