[GastForen Programmierung/Entwicklung AppleScript Script funktioniert in 4.11 aber nicht in 5.01/6.0

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Script funktioniert in 4.11 aber nicht in 5.01/6.0

Anonym
Beiträge gesamt: 22827

15. Aug 2003, 20:33
Beitrag # 1 von 3
Bewertung:
(797 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Scripter,

ich hab hier ein Script, das unter 4.11 super läuft, aber unter 5.01 und 6.0 einen Fehler verursacht. Was ist denn da nicht richtig? Ich kann mir nur vorstellen, das die Textbox nicht mehr richtig per Namen angesprochen werden kann oder haben sich die Maßangaben geändert? Die Textbox ist bei 4.11 richtig platziert, bei 5.01 ist die auf der Arbeitsfläche und nicht auf dem Bogen!

Ich hab den fehlerhaften Teil aus dem Script kopiert:
[code:1]tell application "QuarkXPress Passport™"
 tell document 1
  tell page 1
   repeat with p from 1 to 15
    make text box with properties {bounds:{2, 2, 4, 8}, name:("tb" & (p as string))} at end
    set rotation of text box ("tb" & (p as string)) to 90
    set properties of text box ("tb" & (p as string)) to {bounds:{96.4, 200.5, 102.4, 291.9}}
    tell text box ("tb" & (p as string))
     set paragraph 1 to "Testname-Bildername"
     try
      set properties of paragraph 1 to {font:"Helvetica"}
     end try
     try
      set properties of paragraph 1 to {size:9}
     end try
     set justification of paragraph 1 to centered
    end tell
   end repeat
  end tell
 end tell
end tell[/code:1]

Wer weiß Rat?

happy filemaking

Armin
X

Script funktioniert in 4.11 aber nicht in 5.01/6.0

Hans Haesler
  
Beiträge gesamt: 5826

15. Aug 2003, 22:51
Beitrag # 2 von 3
Beitrag ID: #418254
Bewertung:
(796 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Armin,

hier zunächst eine optimierte Fassung:
---
tell document 1 of application "QuarkXPress 4.11"
  tell page 1
    repeat with p from 1 to 15
      set boxName to "tb" & p
      make text box at end with properties {name:boxName, rotation:90, bounds:{96.4, 200.5, 102.4, 291.9}}
      tell text box boxName
        tell paragraph 1
          set properties to {contents:"Testname-Bildername", font:"Helvetica", size:9, justification:centered}
        end tell
      end tell
    end repeat
  end tell
end tell
---
Statt bei jedem Umgang vier Mal die zeit- und speicherraubende "concatenation" '("tb" & (p as string))' vorzunehmen,
wird der Name der Box in die Variable 'boxName' geschrieben. Zudem ist die ebenfalls zeitraubende Verwandlung des
Zählers 'p' in einen String überflüssig, weil links davon "tb" schon eine Textkette ist. Und was man daran anhängt,
wird automatisch in dieses Format konvertiert. Die 'try / end try'-Konstruktion ist nur wegen der Zuweisung der
Schrift notwendig. Kann weggelassen werden, wenn man eingangs die Verfügbarkeit von "Helvetica" prüft.

Differenz beim Abspielen ab Skripteditor (auf einem G4/800): 82 ticks gegen 32 ticks (1 Sekunde zählt 60 ticks).

*****
Zum Problem mit der Version 5.01. Bereite manuell eine Box vor und plaziere sie dort wo Du die scriptgenerierten
Dinger erwartest. Dann führe dieses Script aus:
---
tell document 1 of application "QuarkXPress 5.01"
  tell page 1
    make text box at end with properties {bounds:{96.4, 200.5, 102.4, 291.9}}
  end tell
end tell
---
Resultat: die erzeugte Box ist links und am Fuss der erwarteten Position aliniert. Wenn Du nun die Rotation auf 90°
änderst, dann schwingt die Box auf die Arbeitsfläche hinaus, ist nicht mehr auf Seite 1 und für das Script nicht
mehr ansprechbar.

Damit es mit QuarkXPress 5.01 auch klappt, müssen die Werte der 'bounds' so ...
Code
... , bounds:{"47.7 mm", "157.8 mm", "53.7 mm", "249.2 mm"}} 

... d.h. auf die Werte der unrotierten Box geändert werden. Warum dies umgestellt wurde weiss ich nicht.

Hans Haesler, hsa@ringier.ch


als Antwort auf: [#418253]

Script funktioniert in 4.11 aber nicht in 5.01/6.0

Anonym
Beiträge gesamt: 22827

15. Aug 2003, 23:35
Beitrag # 3 von 3
Beitrag ID: #418255
Bewertung:
(796 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
Zitat von Hans Haesler hier zunächst eine optimierte Fassung:
---
tell document 1 of application "QuarkXPress 4.11"
  tell page 1
    repeat with p from 1 to 15
      set boxName to "tb" & p
      make text box at end with properties {name:boxName, rotation:90, bounds:{96.4, 200.5, 102.4, 291.9}}
      tell text box boxName
        tell paragraph 1
          set properties to {contents:"Testname-Bildername", font:"Helvetica", size:9, justification:centered}
        end tell
      end tell
    end repeat
  end tell
end tell

Vielen Dank für die Verbesserung - ich werd diesen Tipp gleich mit einbringen.

Zitat von Hans Haesler wird automatisch in dieses Format konvertiert. Die 'try / end try'-Konstruktion ist nur wegen der Zuweisung der
Schrift notwendig. Kann weggelassen werden, wenn man eingangs die Verfügbarkeit von "Helvetica" prüft.

Diese Prüfung hab ich auch in meinem Script. Ich schreibe die Scripts zum posten immer auf das Wesentliche zusammen, da sonst zuviele, unwichtige Variablen drinstehen.

Zitat von Hans Haesler Zum Problem mit der Version 5.01. Bereite manuell eine Box vor und plaziere sie dort wo Du die scriptgenerierten
Dinger erwartest. Dann führe dieses Script aus:
---
tell document 1 of application "QuarkXPress 5.01"
  tell page 1
    make text box at end with properties {bounds:{96.4, 200.5, 102.4, 291.9}}
  end tell
end tell
---
Resultat: die erzeugte Box ist links und am Fuss der erwarteten Position aliniert. Wenn Du nun die Rotation auf 90°
änderst, dann schwingt die Box auf die Arbeitsfläche hinaus, ist nicht mehr auf Seite 1 und für das Script nicht
mehr ansprechbar.

Damit es mit QuarkXPress 5.01 auch klappt, müssen die Werte der 'bounds' so ...
... , bounds:{"47.7 mm", "157.8 mm", "53.7 mm", "249.2 mm"}}
... d.h. auf die Werte der unrotierten Box geändert werden. Warum dies umgestellt wurde weiss ich nicht.
Hans Haesler, hsa@ringier.ch

Das habe ich befürchtet und nun hab ich ein Problem! Alle Daten werden in der Datenbank errechnet und nun muß ich für die Version 5.01 und 6.0 die komplette Datenbank umschreiben. So ein sh.., aber bleibt mir wohl nix anderes übrig. In InDesign kann man übrigens angeben, welche Achse zur Drehung verwendet werden soll.

vielen Dank für die ausführlichen Infos

happy filemaking

Armin


als Antwort auf: [#418253]