Applescript: Zeichensatz und Stil festlegen

Hallo,
ich bin gerade dabei die Abizeitung meiner Stufe zu entwerfen, und habe dafür kiloweise .xml Dateien, mit den Daten meiner Mitschüler.
Ich habe in Ragtime ein Stammlayout angelegt, in dem Name, Foto, Kommentare, etc. als Container "ohne Inhalt" festgelegt sind.
Um jetzt die Namen etc. aus den XML Dateien zu importieren, lese ich mit Applescript über System Events und XML file die Daten in Variablen ein.
Dann durchlaufe ich die Anzahl der Schüler und erstelle für jeden eine neue Seite, und zwar so:

make new page at after page (i - 1) of layout 1 of document 1

Da ich ein Stammlayout festgelegt habe, sind auf jeder dieser Seiten bereits die Container für Photo, Name, Kommentare, etc. vorhanden.
Dann fülle befülle ich die leeren Container mit den ausgelesenen Variablen:

set contents of rectangle 1 of page i of layout 1 of document 1 to "Leistungskurse: " & leistungsk
set contents of rectangle 2 of page i of layout 1 of document 1 to "Kommentare der Stufe: " & kommentare

Das funktioniert super, nach diesen Schritten habe ich 40 Seiten in denen alle Infos über die Schüler stehen. Nur leider alles in einer Schriftgröße und einer Schriftart.

Mein Problem: Ich schaffe es nicht, den Texten einen anderen Zeichensatz zuzuweisen und noch wichtiger: Ich habe keinen Weg gefunden bestimmte Wörter automatisch fett darzustellen.

Ich will z.B. dass "Kommentare der Stufe:" fett ist, und das was danach kommt normal:

Doch wie mache ich das? Ich weiß dass set style of word 1 of text flow 1 of document 1 to bold geht, aber die Nummerierung der "Text flows" geht ja von Seite 1 bis 40 durch, so dass ich mir irgendwie ausrechnen müsste welche Nummer der Text flow 3 auf Seite 13 wohl hat.

Kann ich irgendwie, so wie oben mit set contents ... nicht einfach set style of word 1 of text flow 1 of page 1 of layout 1 of document 1 to bold verwenden? Dass muss doch irgendwie gehen.

Viele liebe Grüße,
Max

Edit: Das gesamte Script hab ich hier hochgeladen: http://pastebin.com/JkwtHNFC

Re: Applescript: Zeichensatz und Stil festlegen

#10630 On 23 April, 2012 11:42 Jürgen Schell said,

Hier ein paar Snippets, ich hoffe, Du kannst die anpassen:

Um bestimmte Wörter auf fett zu stellen, kann man wohl nur über die Wörter iterieren:

tell application "RagTime 6.5"
	tell document 1
		tell text flow 1
			set word_count to count words
			repeat with x from 1 to word_count
				if (word x as text) = "Text" then
					set style of word x to bold
				end if
			end repeat
		end tell
	end tell
end tell

Wenn Du alle text flows gleich behandeln willst: Sie sind fortlaufend numeriert:

tell application "RagTime 6.5"
	tell document 1
		set text_count to count text flows
		repeat with J from 1 to text_count
			tell text flow J
				-- Hier die Aktion
			end tell
		end repeat
	end tell
end tell

Wenn Du auf bestimmte Texte auf bestimmten Seiten zugreifen können willst, solltest Du die text flows zuerst mit einem Namen anlegen und dann in das Rechteck stecken. Dann ist klar, unter welchem Namen Du welchen Text erwischen kannst:

-- in diesem Beispiel gibt es ein Stammlayout mit einer Stammseite
-- mit zwei Rechtecken.
-- Ein Layout namens »Layout 1« wurde von Hand angelegt.
set layout_name to "Layout 1"

tell application "RagTime 6.5"
	tell document 1
		repeat with x from 1 to 10
			set text_name_1 to "Text Seite " & x & " Rechteck 1"
			set text_name_2 to "Text Seite " & x & " Rechteck 2"
			make new text flow at end with properties {name:text_name_1}
			make new text flow at end with properties {name:text_name_2}
			set contents of rectangle 1 of page x of layout layout_name to text flow text_name_1
			set contents of rectangle 2 of page x of layout layout_name to text flow text_name_2
			make new page at after page x of layout layout_name
		end repeat
	end tell
end tell

Gruß, Jürgen

Jürgen

www.j-schell.de

Re: Applescript: Zeichensatz und Stil festlegen

#10631 On 23 April, 2012 20:49 Max said,

Vielen Dank, der Tip hat mir sehr geholfen. Das Skript funktioniert jetzt einwandfrei. Mal sehen ob ich noch auf weitere Probleme stoße :)

Script: http://pastebin.com/eQ4z8aAE