Forenindex » Programmierung/Entwicklung » AppleScript » Textboxen reihenweise alinieren

Textboxen reihenweise alinieren

Hans Haesler
  
Beiträge gesamt: 5826

3. Dez 2003, 15:04
Bewertung:

gelesen: 791

Beitrag als Lesezeichen
Im QuarkXPress-Forum http://www.page-online.de/page/forum/viewthread/2052 hat Arie sein Problem präsentiert. Er muss in aufwendiger Arbeit Textboxen – welche unterschiedlich hoch sein können – reihenweise alinieren. Jetzt habe ich ein Script fertiggestellt, welches sich der Sache annimmt.

Mein Ziel war, den Code möglichst autonom zu halten, d.h. durchgehend mit Variablen zu arbeiten und die fixen Werte auf ein Minimum zu beschränken. Der Vorteil ist, dass sich das Script dynamisch an das Dokument anpassen kann. Im Code muss nichts geändert werden.

Die Seitenhöhe wird registriert, der Zeilenabstand, die Anzahl Kolonnen. Die Anzahl Reihen wird herausgefunden, indem die Zellenseparations-Zeichen gezählt und das Resultat durch die Anzahl Kolonnen geteilt wird.

Trotz aller Flexibilität müssen einige Bedingungen eingehalten werden:
1) Nur die erste Reihe von Boxen plazieren.
2) Die Boxen verketten.
3) Im Text konsequent das Tabulator-Zeichen als Trenner einsetzen
4) Den Text importieren.
5) Die erste Box auswählen.
6) Das Script starten.

Das Script versucht als erstes, die Tabulatoren in Nächste-Spalte-Zeichen zu verwandeln. Dann zählt es die verketten Boxen und rechnet die Anzahl Reihen aus. Anschliessend werden die Höhen der Boxen der ersten Reihe angepasst, die Position für die zweite Reihe ausgerechnet, die weiteren Boxen werden laufend erzeugt und verkettet und angepasst usw.

Unten an der Seite kann es vorkommen, dass eine Reihe zu weit unten steht. Das Script löscht dann die ganze Reihe und erzeugt sie auf der nächsten Seite neu. Man kann dies nicht anders lösen, weil die Boxen zuerst erzeugt werden müssen, bevor man feststellen kann, ob die vertikale Position okay ist.

Wenn mehr Reihen vorhanden sind als Seiten, dann fügt das Script neue Seiten ein, damit es alles plazieren kann.

Leider ist das Ganze zu umfangreich, um hier veröffentlicht zu werden. Doch wer sich ansehen möchte, wie die Boxenreihen mit einem Blindzeilenabstand positioniert werden, kann bei mir ein Musterdokument (keine Angst, Arie, ich werden den Text durch belangloses Zeug ersetzen) und das Script verlangen.

Hans Haesler <hsa@ringier.ch>

Textboxen reihenweise alinieren

Anonym
Beiträge gesamt: 22827

21. Dez 2003, 12:24
Bewertung:

gelesen: 790

Beitrag als Lesezeichen
Hallo Hans,

das Script funktioniert fantastisch, einfach Genial.
Vielen Dank für deine Mühe.

Gruß Arie