inDesign: barra de loading relativa a las páginas (JS/AS)
3 seguidores
Hola domestikxs!
Tengo entre manos una maquetación algo larga (pasará las 150 páginas) y debido a la temática se me ha ocurrido integrar en el pie de página una especie de "barra de carga" que muestre un % relativo de la página en la que te encuentras respecto al total de páginas.
Podría ser algo así:

A alguien se le ocurre cómo hacerlo, por dónde empezar a buscar información, o alguna pista sobre si inDesign acepta algún tipo de 'programación'?
Gracias!
chuchonieto
Ahora si que es perfecto.
Gracias una vez más, da gusto tener compañeros así!
andrewman
Una de las razones de la "nueva versión", si añades páginas nuevas seleccionalas y desbloquéalas, luego ejecuta el script de nuevo. Las barras de progreso anteriores se actualizan y las nuevas se crean.
andrewman
Script v0.2
/**
* Barra de progreso
* javascript (.jsx)
*/
// Definir según documento
largo_barra = 10;
nombre_estilo = "current_progress";
num_pags = app.activeDocument.pages.length;
incremento = largo_barra/num_pags;
for( i=0; i < num_pags; i++ ) {
pg = app.activeDocument.pages.item(i);
for( j=0; j < pg.allPageItems.length; j++ ) {
pgi = pg.allPageItems[j];
if( pgi.appliedObjectStyle.name == nombre_estilo ) {
dim = pgi.geometricBounds;
progreso = Math.round( (( dim[1] + incremento ) + ( i * incremento )) * 100 ) / 100;
pgi.geometricBounds = [ dim[0], dim[1], dim[2], progreso ];
}
}
}
alert('Fin');
Ahora sólo debes editar 2 varibles.
chuchonieto
Genial!
Lo implementaré en el documento cuando acabe la maquetación (por lo que veo no se pueden añadir páginas posteriores), pero lo he probado aparte y va perfecto (en CS4).
Mil gracias andrewman, es justo lo que necesitaba ;)
andrewman
Previo a ejecutar el script:
En tu página maestra el elemento (rectángulo?) no debe estar agrupado ni bloqueado.
Las páginas con contenido ya creadas, le das a "permitir sobrescribir elementos de página maestra", o el equivalente a "Override all Master Page Items", sobre la selección de páginas.
Contenido del script:
/**
* Barra de progreso
* javascript (.jsx)
*/
// Definir según documento
largo_barra = 10;
unidad_inicial = 0.1;
nombre_estilo = "current_progress";
num_pages = app.activeDocument.pages.length;
avance_unitario = largo_barra/num_pages;
for(i=0;i<num_pages;i++) {
pg = app.activeDocument.pages.item(i);
progreso = ( avance_unitario - unidad_inicial ) + ( Math.round( i * avance_unitario * 10000 ) / 10000);
for(j=0;j<pg.allPageItems.length; j++) {
pgi = pg.allPageItems[j];
if( pgi.appliedObjectStyle.name == nombre_estilo ) {
gb = pgi.geometricBounds;
pgi.geometricBounds = [ gb[0], gb[1], gb[2], gb[3] + progreso ];
}
}
}
alert('Fin');
Debes modificar las 3 primeras variables según las medidas de los elementos que creaste en la página maestra y el nombre del estilo según corresponda.
Yo hice las pruebas con un rectángulo de fondo de 10cm y otro, sobre éste, de 0.1cm que representará el ""progreso_actual"", el cual será modificado según el número de página, de ahí los valores que aparecen en el script.
p.d: Probado en CS4 solamente.
avance Mod
Pablo, no esta permitido el spam y menos tan descaradamente.
Te borro los otros 9 post como este.
chuchonieto
Una vez investigado un poco más el tema muevo el hilo a programación cliente (inicialmente estaba en multimedia) porque, como esperaba, inDesign admite scripts personalizados programados tanto en javascript como en AS.
He dado con este código, que repasa todos los elementos que tengan un mismo estilo dentro de un documento y redefine su tamaño.
¿A alguien se le ocurre cómo cambiar el valor fijo por el número de página actual?