Wer hat dies nicht schon erlebt? Beim einzig(!!!) richtigen(!!!) Öffnen mit Befehl-O zeigt die Status-Zeile unter der Öffnung des Dialoges die Warnung: "Dokument Version: Unbekannt!" Der Klick auf "Öffnen" bestätigt mit der Meldung: "Öffnen des Dokuments mit dieser QuarkXPress Passport Version nicht möglich. [17]", dass das ausgewählte Dokument mit einer höheren Versionsnummer gesichert worden war.
Wenn die gleiche Aktion per Script durchgeführt werden soll, dann muss ein Test eingebaut werden, welcher entscheidet, ob das Dokument geöffnet wird oder nicht. Mit dem 'choose file'-Befehl wird ein XPress-Dokument ausgewählt. Der Handler 'getVers(filePath)' stellt fest, mit welcher Version das Dokument gesichert worden ist, ohne das Dokument zu öffnen.
Wie ist dies möglich? Ganz einfach: mit dem 'read'-Befehl der "Standard Additions" werden die 12 ersten Zeichen der Datei in eine Variable gelesen. Weil vier davon unsichtbar sind, bleiben noch acht übrig, um den Test 'if versionClue = ' zu durchlaufen.
Wenn die acht Zeichen "MMXPR3??" lauten, dann handelt es sich um ein XPress-3.x-Dokument (das "x" steht für alle veröffentlichten Versionen der betreffenden Reihe). Mit "MMXPR3AA" haben wir es mit einem Dokument der Version 4.x zu tun. "MMXPR3BB" bedeutet Version 5.x usw. Windows-Dokumente beginnen ebenfalls mit zwei unsichtbaren Zeichen, dann folgen zwei Versal-I. Den Abschluss macht ein unsichtbares Zeichen. Dies ist der Grund, weshalb im Test das elfte Zeichen geprüft wird.
Das folgende Script verkündet mit einem Dialog, in welcher Version ein Dokument geöffnet werden kann. Weil ich nicht glaube, dass die unsichtbaren Zeichen den Transport überstehen, habe ich den unsprünglichen Code etwas geändert.
Der Filter 'of type {"XDOC", "XPRT"}' stellt sicher, dass nur XPress-Dokumente (und XPress-6-Projekte :-( im "Öffnen"-Dialog sichtbar werden.
---
set filePath to (choose file with prompt "Ein QuarkXPress-Dokument wählen." of type {"XDOC", "XPRT"}) as string
set docVers to getVers(filePath)
on getVers(filePath)
set versionClue to read file filePath for 12
if versionClue contains "MM" then
if versionClue ends with "?" then
display dialog "Version QuarkXPress 3.x (Mac)"
else if versionClue ends with "A" then
display dialog "Version QuarkXPress 4.x (Mac)"
else if versionClue ends with "B" then
display dialog "Version QuarkXPress 5.x (Mac)"
else if versionClue ends with "C" then
display dialog "Version QuarkXPress 6.x (Mac)"
else
display dialog "Unbekannte QuarkXPress-Version (Mac)"
end if
else if versionClue contains "II" then
set testChar to character 11 of versionClue
if character 11 of versionClue = "?" then
display dialog "Version QuarkXPress 3.x (Windows)"
else if character 11 of versionClue = "A" then
display dialog "Version QuarkXPress 4.x (Windows)"
else if character 11 of versionClue = "B" then
display dialog "Version QuarkXPress 5.x (Windows)"
else if character 11 of versionClue = "C" then
display dialog "Version QuarkXPress 6.x (Windows)"
else
display dialog "Unbekannte QuarkXPress-Version (Windows)"
end if
end if
end getVers
---
Ich habe nur ein einziges Windows-XPress-Dokument zur Hand; konnte also die Windows-Tests nicht alle durchführen.
Wo die "feineren" Werte – die Nachkommastellen der Version (z.B. '.11' oder '.01') – gespeichert werden, habe ich noch nicht herausgefunden.
Hans Haesler <hsa@ringier.ch>