Hallo Goar,
das Ansprechen von verankerten Boxen ist ein grossen Problem. Weil die Box, welche in einem bestimmten
Absatz steckt, nicht als Box, sondern als Teil des Textflusses betrachtet wird, wenn die Story adressiert
wird. Am besten wäre es, die Boxen zu benennen...
Mit dem folgenden Snippet erhält man eine Liste der Objektreferenzen der verankerten Boxen.
---
tell document 1 of application "QuarkXPress 4.11"
tell page 1
set objRef to object reference of every text box whose anchored is true
end tell
end tell
---
Wenn aber der Bezug zum Absatz beibehalten werden sollte, dann muss man anders vorgehen. Das Script geht
die Absätze der Reihe nach durch. Wenn ein Absatz einen "ASCII character 4" enthält, dann ist sehr
wahrscheinlich eine Box darin verankert (kann sich aber auch um einen Text handeln, welcher mit einer
XTension wie XData geladen wurde). Anschliessend kann man versuchen, Deinen Lösungsansatz umzusetzen.
---
tell document 1 of application "QuarkXPress 4.11"
tell current box
set pageName to name of page 1
set Y1 to top of bounds as real
tell story 1
repeat with i from 1 to count of paragraphs
if paragraph i contains (ASCII character 4) then
set bLine to (baseline of line 1 of paragraph i) as real
my getBox(pageName, Y1, bLine, i)
end if
end repeat
end tell
end tell
end tell
on getBox(pageName, Y1, bLine, i)
set refVal to Y1 + bLine
tell document 1 of application "QuarkXPress 4.11"
tell page pageName
repeat with k from 1 to count of text boxes
tell text box k
if anchored is true then
set kY1 to top of bounds as real
if kY1 > (refVal - 3) and kY1 < (refVal + 3) then
--
-- hier die Werte ausziehen, usw.
--
end if
end if
end tell
end repeat
end tell
end tell
end getBox
---
Achtung: sobald das Script die Textkette der zweiten Box erreicht, stimmt der Wert 'refVal' nur, wenn
beide Boxen die gleiche Y-Position haben. Aber das obige Script soll nur als Denkanstoss dienen.
Hans Haesler, hsa@ringier.ch