2016-08-29 4 views
-1

J'ai eu besoin de savoir si le contenu du cadre de texte a été modifié ou non par un script d'action. Jusqu'à présent, je compare avec mes données côté serveur pour vérifier le contenu du cadre de texte de document indesign, mais maintenant je voudrais vérifier si un drapeau par défaut là pour éviter l'appel côté serveur.Comment déterminer si le contenu de la zone de texte du document de conception a été modifié via un script java ou un script d'action?

+0

Vous pouvez utiliser les changements de piste d'InDesign disposent, ou vous pourriez économiser une somme de contrôle du contenu du cadre de texte côté client et comparer la somme de contrôle à chaque fois pour voir si elle a changé. –

+0

Merci pour votre commentaire @JoshVoigts. Cela fonctionne pour moi et j'ai frappé à la façon d'effacer tous les changements com.adobe.indesign.Changes en cliquant sur le bouton ... –

Répondre

1

Suivre les changements semble la voie à suivre. Une alternative pourrait consister à utiliser des événements inactifs pour surveiller les changements d'histoires. En gros ce que Josh vient de suggérer.

#targetengine "storiesChanges" 
 
main(); 
 
function main() 
 
{ 
 
\t var db = {}; 
 
\t 
 
\t var myIdleTask = app.idleTasks.item("checkStories"); 
 
\t if (!myIdleTask.isValid) { 
 
\t \t myIdleTask = app.idleTasks.add({name:"checkStories", sleep:100}); 
 
\t \t myIdleTask.addEventListener(IdleEvent.ON_IDLE,onIdleEventHandler, false); 
 
\t } 
 

 
\t function onIdleEventHandler(myIdleEvent) 
 
\t { 
 
\t \t var doc = app.properties.activeDocument; 
 
\t \t if (!doc) { 
 
\t \t \t db = {} 
 
\t \t \t return; 
 
\t \t } 
 
\t \t 
 
\t \t var sts = doc.stories, st, id; 
 
\t \t var n = sts.length; 
 
\t \t 
 
\t \t while (n--) { 
 
\t \t \t st = sts[n]; 
 
\t \t \t id = st.id; 
 
\t \t \t 
 
\t \t \t if (!db[id]) { 
 
\t \t \t \t $.writeln ("Storing "+id); 
 
\t \t \t \t db[id] = st.contents; 
 
\t \t \t } 
 
\t \t \t else if (db[id]!=st.contents) { 
 
\t \t \t \t $.writeln ("Some changes were made on story "+id+" at "+(new Date())); 
 
\t \t \t \t db[id] = st.contents; 
 
\t \t \t } 
 
\t \t \t else { 
 
\t \t \t \t $.writeln ("No changes were made for story "+id); 
 
\t \t \t } 
 
\t \t } 
 
\t } 
 
}