Hallo Scripter,
in einer Artikelliste gibt es Absatzformate für Artikel-Bezeichnung und Artikel-Text. Wenn die Artikel-Bezeichnung aus einer Zeile besteht und der Artikel-Text aus zwei Zeilen (erste Zeile Text, zweite Zeile Artikel-Nr. und Preis), soll die erste Zeile des Artikel-Textes hinter die Artikel-Bezeichnung gesetzt werden, sofern dort der Platz ausreicht.
Eigentlich habe ich schon alles zusammen, bis einschließlich der Gesamtlänge der beiden Zeilen:
---
[code:1]set maxWidth to 60
tell document 1 of application "QuarkXPress 4.11"
tell current box
tell story 1
repeat with i from 3 to 8 -- testweise nur diese Absätze
try
if name of style sheet of paragraph i contains "Bezeichnung" then
if (count of lines of paragraph i) = 1 then
set bezWidth to width of line 1 of paragraph i as millimeter units as real
end if
log bezWidth
else if (name of style sheet of paragraph i contains "Artikel-Text") and (bezWidth ≠ "") then
if (count of lines of paragraph i) = 2 then
set txtWidth to width of line 1 of paragraph i as millimeter units as real
set totalWidth to bezWidth + txtWidth
if maxWidth > totalWidth then
-- hier müsste ich jetzt irgendwie den Text markieren statt ihn zu kopieren
set txtPara to every text of line 1 of paragraph i
end if
log (txtPara & totalWidth) as text
else
set bezWidth to ""
end if
else
set bezWidth to ""
end if
on error
end try
end repeat
end tell
end tell
end tell
[/code:1]---
Nur gelingt es mir nicht, die erste Zeile des Artikel-Textes zu markieren, damit ich sie mit aller Formatierung (per XP-Marken-Text) sichern und hinter der Artikel-Bezeichnung wieder einsetzen kann. Dafür müsste ich nach dem Kopieren die Einfügemarke ans Ende des Artikel-Bezeichnungs-Absatzes setzen.
Meine Versuche, Begriffe aus dem XP-Verzeichnis (selection, insertion point) ohne Beispiel in funktionierenden Scriptzeilen unter zu bringen, sind wie so oft fehlgeschlagen.
Wer entfrustet mich?
Gruß, Goar