Indesign CS2 Dokument automatisch sichern

plastikpixel

plastikpixel

Mitglied
Thread Starter
Dabei seit
04.01.2006
Beiträge
23
Reaktionspunkte
0
Hallo Community,
auf der Suche nach des Rätselslösung im Forum, habe ich bis jetzt zwar Leute mit dem Selben Problem gefunden, aber niemanden der eine Lösung darauf wußte. Es geht um folgendes: in QuarkXPress war es bisher möglich, Dateien alle X-beliebige-Minuten in eine X-beliebigen-Ordner automatisch zu sichern und alle X-beliebigen-Dateiversionen von dem Dokument beizubehalten. Das ganze läuft im Hintergrund und ist sehr hilfreich, wenn man mal in einem Dokument eine Änderung zu viel gemacht hat und diese über Apfel-Z nicht mehr herstellen kann oder ähnliches.
Nun ist es leider so, dass mit dem Umstieg auf Indesign CS2 zwar viele neue Funktionen dazu gekommen sind, aber diese bestimmte leider fehlt. So hab ich mich hingesetzt und seit 2 Tagen AppleScript gelernt - bin aber noch ganz am Anfang. Deswegen meine Frage:
1.) Wo bekomme ich eine gute AppleScript-Dokumentation her?
2.) Hat jemand schon eine Lösung bzw. ein Apple-Script gebaut, dass genau das macht und könnte es mir zur Verfügung stellen?
3.) Wenn 2.) nicht der Fall sein sollte, kann mir Jemand vielleicht helfen folgendes Script zu verbessern?

Code:
set stringToBeDisplayed to "Do you want to start automatic save?"
set tempVar to display dialog stringToBeDisplayed buttons {"NEIN", "OK"} default button 2
set theButtonpressed to button returned of tempVar
--startet die automatische sicherung nach bestätigung

if theButtonpressed is "OK" then
	tell application "Finder"
		set choosedfile to choose file
		open choosedfile
	end tell
	--sucht die zu öffnenende datei aus und öffnet sie
	
	repeat 2 times --wiederholungen
		
		
		--tell application "Adobe InDesign CS2" --anderer ansatz
		--activate -- anderer ansatz
		
		tell application "System Events"
			tell process "Adobe Indesign CS2"
				keystroke "s" using {command} -- sichert die datei
			end tell
		end tell
		
		tell application "Finder"
			duplicate choosedfile --datei duplizieren
			move choosedfile to "Macintosh HD:Domain:de.ddb.com:Users:grossa:Desktop:INDD_DocSave" --und in ordner verschieben
		end tell
		
		
		
		repeat with counter from 1 to 5 --timer
			say "" & counter --timer zur kontrolle
		end repeat
		
	end repeat
	
else if theButtonpressed is "NEIN" then --bricht das programm vor dem start ab
end if

Diese Fassung ist ziemlich einfach gestrickt - zugegebener Maßen (man kann es sicherlich edler machen) - und beinhaltet auch noch ein paar Hilfen, um genauer sehen zu können was passiert und ob es genau das macht, was ich haben will. Und bis jetzt tut es glaube ich so ziemlich genau das, aber es ist irgendwie noch nicht so komfortabel.
Weiß jemand Rat? Ich wäre dafür sehr dankbar.
 
Ciao Plastikpixel,
sehr interessante Aufgabe :p
Habe leider weder Quark noch InDesign aber als grundlegende Anregung würde ich das Sichern nicht über "System Events" steuern: jede scriptfähige Anwendung sollte in ihrem Verzeichnis einen Save oder Save as Befehl haben.
Desweiteren denke ich, es wäre eleganter wenn das Abspeichern automatisch von statten ginge, ohne daß der Benutzer einen File auswählen muß.
Im nachfolgenden Beispiel habe ich das mal kurz mit "Microsoft Word" durchgespielt, solange Word offen ist wird sein "Dokument 1" unter einem automatisch erzeugten Namen alle 5 Minuten in den Arbeitsordner kopiert:

PHP:
(* Das folgende Script muß als "Stay-Open Application" gespeichert werden *)

on idle
	tell application "Finder"
		if not (exists folder "autoSaveƒ" of desktop) then
			make new folder at desktop with properties {name:"autoSaveƒ"}
		end if
		-- in diesem Ordner werden die automatisch erzeugten Files zwischengelagert
		set savepath to (folder "autoSaveƒ" of desktop) as alias
	end tell
	
	tell application "System Events"
		set apps to name of every process whose visible is true
	end tell
	
	-- Solange Word unter den offenen Anwendung ist, läuft auch das Script
	if "Microsoft Word" is in apps then
		set t to time of (current date) as string
		set filePath to (savepath & t & ".doc") as string
		tell document 1 of application "Microsoft Word"
			save as file name filePath
		end tell
	else
		tell application "Finder"
			set savedFiles to every item of savepath
			set c to count of savedFiles
			display dialog "autoSave hat " & c & " Files autogesichert." & return & "Sollen diese Files erhalten bleiben oder gelöscht werden?" buttons {"Löschen", "Sichern"} with icon 1
			if button returned of the result = "Löschen" then
				move folder "autoSaveƒ" of desktop to trash
			end if
		end tell
		tell me to quit
	end if
	
	return 300 -- Sekunden, beliebig veränderbar
end idle
Ist alles sehr schnell zusammengestrickt und noch strak verbesserungsbedürftig, aber wenn Dich der Ansatz interessiert, können wir mit Hilfe der anderen Scripter daran weiterbasteln.

Good scripting
Farid
 
Hey!Wow!Super! Der Ansatz sieht gut aus und auf jeden Fall interessant. Vielen Dank für die schnelle Reaktion!!
Ich werde versuchen mir das zu verinnerlichen - bin ja noch AppleScript-Newbie. :)
Aber kannst Du mir verraten ob es eine AppleScript Dokumentation gibt und wo ich die finde? Bei AppleScript Studio? Hab bis jetzt nur mit dem Editor rumprobiert. Von Java kenne ich es zumindest so, dass es eine Dokumentation gibt in der man Methoden und Klassen nachschlagen kann. Gibt es so was für AppleScript?
Wäre toll, wenn sich noch Jemand dafür interessiert und Lust hat mit daran rumzubasteln.
 
Zurück
Oben Unten