Script de Indesign para reemplazar el estilo de párrafo

Estoy usando ID CC 2014 en una Mac y hay un archivo enorme con varios cientos de páginas donde necesito eliminar un cierto estilo de párrafo reemplazándolo con otro. Digamos que hay un estilo para llamado "estilo-1". Cuando lo elimino del panel de estilos de párrafo, me pide que proporcione otro estilo para tomar su lugar para las piezas de texto actualmente diseñadas como "estilo-1". Aquí, agrego, digamos, "estilo-2" para tomar su lugar. ¿Hay alguna forma de automatizar el proceso usando un script? Intenté estudiar la FindTextPreferenceclase JS pero no parece tener las propiedades que podríamos necesitar en este caso. ¿Algun consejo?

no entendí bien ¿Cuánto más automático puede obtener que el método de eliminación? ...el método de eliminación, que reemplaza automáticamente todas las apariciones de un estilo de párrafo con otro...
Cuando elimina un estilo de párrafo, también necesita reasignar un nuevo estilo para que tome su lugar. Estoy buscando automatizar el proceso de eliminar el estilo-1 y luego asignar el texto (que hasta ahora estaba diseñado como estilo-1) al estilo-2. Entonces, sí, eso es al menos 4 clics de mouse reducidos allí mismo. Además, en mi flujo de trabajo, voy a tener que repetir este proceso para un montón de estilos, así que sí, la automatización está justificada. Centrémonos en el "cómo" en lugar del "por qué". Gracias.
Los OP a menudo quieren una cosa pero en realidad necesitan otra. Cuando alguien pregunta acerca de la automatización de una función aparentemente automática en un software, prefiero averiguar por qué, que hacer ciegamente lo que dice el maestro.
No importa. Lo descubrí y publiqué mi solución para otros. Gracias por tu tiempo. Salud.

Respuestas (2)

De acuerdo, finalmente descubrí la respuesta por mí mismo y la estoy publicando aquí para beneficio de los demás. El truco consiste en llamar al removemétodo de la ParagraphStyleclase (más exactamente, se elimina el estilo de párrafo). La sintaxis es:

Old_Style.remove(New_Style);

En esta sintaxis, el New_Styleargumento es opcional. Así, para mi ejemplo, el código correcto sería:

var antiguo = app.activeDocument.paragraphStyles.itemByName("style-1"); var nuevo = app.activeDocument.paragraphStyles.itemByName("style-2"); viejo.remove(nuevo);

ParagraphStyleSe pueden encontrar más detalles sobre la clase en http://jongware.mit.edu/idcsjs5.5/pc_ParagraphStyle.html .

Puedes usar este script.

    var myDoc = app.activeDocument;  

try {
myDoc.paragraphStyles.item("Old Still").remove("New Still");
} catch(e) {}

Si desea reemplazar más de un estilo, simplemente duplique este código y cambie los nombres de los estilos.

try {
    myDoc.paragraphStyles.item("Old Still").remove("New Still");
    } catch(e) {}
Esta solución ya está incluida en la respuesta aceptada, no solo repita la información. Hay muchas preguntas sin respuesta que podrían beneficiarse de su tiempo.
Bueno, hay una función adicional en el código que escribí. Si el estilo de párrafo no existe en los documentos, la secuencia de comandos dará error y dejará de funcionar. En mi versión, el script ignorará cualquier error e intentará reemplazar los estilos de párrafo existentes.