ACut | 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 :
- //--------------------------------------------------------------------
- // CONSTANTS
- //--------------------------------------------------------------------
- var ENUM_LOCAL_FRENCH = 1279477362; // = Locale.frenchLocale
- var APP_VERSION = parseInt(app.version); // CS == 3 | CSx > 3
- var AUTO_PAGE_CAR = '^#'; // Car spe pour folio auto
- //--------------------------------------------------------------------
- // SCRIPT GLOBAL SETTINGS & PREFERENCES
- //--------------------------------------------------------------------
- var SCRIPT_NAME = "FreezeAutoPages";
- var SCRIPT_VERSION = "1.0";
- var LANG = (app.locale == ENUM_LOCAL_FRENCH) ? 1 : 0;
- //--------------------------------------------------------------------
- // LINGUISTICS (DIALOGS)
- //--------------------------------------------------------------------
- var DLG_NO_DOCUMENT =
- [
- "You must open a document before launching " + SCRIPT_NAME,
- "Vous devez ouvrir un document avant de lancer " + SCRIPT_NAME,
- ];
- var DLG_NO_FOLIO_FOUND =
- [
- "No page number found",
- "Aucun folio trouvé"
- ];
- var DLG_BROKEN_FOLIOS =
- [
- "page numbers frozen",
- "folios traités"
- ];
- //--------------------------------------------------------------------
- // OBJECT METHODS
- //--------------------------------------------------------------------
- /*obj*/ Object.prototype.getTextFrame = function()
- //----------------------------------------------------------
- // Try to return the parent textframe of 'this' (supposed to be Text or derived)
- // Tente de renvoyer le bloc-texte parent de 'this' (Text ou assimilé)
- // Ret. null IF error
- {
- try
- {
- if (APP_VERSION > 3)
- {
- return(this.parentTextFrames[0]);
- }
- else
- {
- return(this.parentTextFrame);
- }
- }
- catch(ex)
- {
- }
- return(null);
- }
- /*obj*/ Object.prototype.getPage = function()
- //----------------------------------------------------------
- // If this is a page/spread child, returns this page/spread
- // Else, search the top-level container of this & returns its page/spread
- // Si this est enfant d'une page ou d'un spread, renvoie cette page/spread
- // Sinon, recherche le conteneur de plus haut niveau et renvoie sa page/spread
- // NB: this est un obj quelconque selectionnable
- // Ret. null IF error
- {
- try {
- switch(this.parent.constructor.name)
- {
- case "Page" :
- // cas simple du PageItem de surface
- return(this.parent);
- case "Spread" :
- // Un Spread n'a pas de folio -> ignorer
- return(null);
- case "Story" :
- // texte, pt d'insertion -> rech. TextFrame corresp.
- return(this.getTextFrame().getPage());
- case "Character" :
- // cas special d'un composant insere comme caractere ->
- // rech. le TextFrame parent du caractere
- return(this.parent.getTextFrame().getPage());
- default:
- // par defaut: remontee vers le parent
- return(this.parent.getPage());
- }
- }
- catch(ex)
- {}
- return(null);
- }
- //--------------------------------------------------------------------
- // APPLICATION
- //--------------------------------------------------------------------
- /*num*/ Document.prototype.freezeAutoPages = function()
- //----------------------------------------------------------
- {
- var results = null;
- var pg = null;
- var tf = null;
- results = this.search(AUTO_PAGE_CAR, true, false);
- if (results == null) return(0);
- if (results.length == 0) return(0);
- var r = 0;
- for (var i=results.length-1 ; i>=0 ; i--)
- {
- tf = results[i].getTextFrame();
- if ( tf == null ) continue;
- pg = tf.getPage();
- if ( pg == null ) continue;
- if (pg.parent.constructor.name == "MasterSpread" ) continue;
- results[i].contents = pg.name;
- r++;
- }
- return(r);
- }
- /*void*/ Application.prototype.main = function()
- //----------------------------------------------------------
- {
- if ( this.documents.length == 0 )
- {
- alert(DLG_NO_DOCUMENT[LANG]);
- return;
- }
- var nw = this.activeDocument.freezeAutoPages();
- if ( nw > 0 )
- {
- alert('' + nw + ' ' + DLG_BROKEN_FOLIOS[LANG]);
- }
- else
- {
- alert(DLG_NO_FOLIO_FOUND[LANG]);
- }
- }
- 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/
|