AppleScript Newbie: Wie definiere ich Text Selection in InDesign

Diskutiere mit über: AppleScript Newbie: Wie definiere ich Text Selection in InDesign im Scripting und Automatisierung Forum

  1. Danko

    Danko Thread Starter MacUser Mitglied

    Beiträge:
    25
    Zustimmungen:
    0
    Registriert seit:
    14.01.2005
    Hi!

    Ich möchte per AppleScript nach Text Suchen und die Markierung/Selection des Textes so lange erweitern bis das Zeilenumbruchzeichen kommt. (Also ab gefundenem Wort bis zum Ende der Zeile).

    Soweit hab ich das schon zusammengebastelt:
    tell application "InDesign CS"
    set myvar to "Suchwort"
    set mySearchResult to search for myvar
    set mySelection to selection
    get mySelection
    end tell

    Das Ergebnis bringt dann:
    {text from character 301 to character 316 of story id 1104 of document "Unbenannt-4" of application "InDesign CS"}

    Wie bekomme ich nun diese character ID (301, 316) Info aus mySelection heraus, um das entsprechend zu ändern und die Selection um eine gewisse Anzahl von Zeichen zu verlängern?

    Danke schonmal für Hilfe!
    Viele Grüße
     
  2. giesskanne

    giesskanne MacUser Mitglied

    Beiträge:
    52
    Zustimmungen:
    3
    Registriert seit:
    01.10.2005
    Versuch's mal damit:

    Code:
    tell application "InDesign CS"
    	tell active document
    		set myvar to "Suchwort"
    		set mySearchResult to search for myvar
    		repeat with i from 1 to count of mySearchResult
    			set myStart to index of item i of mySearchResult
    			set myEnd to index of last character of line 1 of item i of mySearchResult
    			select text from character myStart to character myEnd of parent story of item i of mySearchResult
    			-- do something
    		end repeat
    	end tell
    end tell
    
     
  3. Danko

    Danko Thread Starter MacUser Mitglied

    Beiträge:
    25
    Zustimmungen:
    0
    Registriert seit:
    14.01.2005
    ooooh, super! tausend dank schonmal! :)
    Eine simple Frage, wo kann ich die Syntax dafür nachlesen? Ich habe mir den Adobe InDesign CS Scripting Guide als PDF geladen, finde zum Thema "select" aber nur die kryptische Info: select, Name: [existing selection], Type: replace, add to, remove from ...

    mir erscheint jetzt "select text from character .." einleuchtend, aber wo kann ich das nachschlagen? ;) Im AppleScriptLanguageGuide PDF is das z.B. für die Methoden nachvollziehbar gemacht, gibts das auch für InDesign?

    Wenn ich im Funktionsverzeichnis für InDesign CS unter AppleScript nachschaue finde ich zu select:

    select reference : Supported by the following objects: text, character, word, line, text column, paragraph, text style range, insertion point, text frame.

    [existing selection replace/add to/remove from/replace/add to/remove from/replace/add to/remove from/replace/add to/remove from/replace/add to/remove from/replace/add to/remove from] : How to handle the existing selection

    "How to handle existing selection" ist genau mein nächster Schritt, aber auch hier wieder: wo finde ich die Syntax dazu?

    Jedenfalls würde ich gerne den (jetzt) ausgewählten Text durch einen neuen String ersetzen. Und damits richtig spannend bleibt soll dieser String einen Tabulator und einen Zeilenwechsel am Ende enthalten.

    Danke nochmal für das erste Script, und auch Danke schonmal, hier etwas Licht ins Dunkel der Dokumentationen zu bringen :)
     
  4. giesskanne

    giesskanne MacUser Mitglied

    Beiträge:
    52
    Zustimmungen:
    3
    Registriert seit:
    01.10.2005
    Wahrscheinlich in einem x-beliebigen AppleScript-Buch oder in AppleScript-Beispielen. Bei mir läuft's meist über trial and error (und der Beobachtung der Properties im Script Debugger).

    Eine gute Einführung in AS ist http://www.fischer-bayern.de/applescript/html/ebook.html

    Ja, und deswegen kannst Du das Objekt "text from character myStart to character myEnd of parent story of item i of mySearchResult" auswählen, denn handelt sich hier um ein text-Objekt.

    Damit kannst Du angeben, wie mit einer bestehenden Auswahl umzugehen ist (soll sie erweitert oder ersetzt werden)
    Das folgende Beispiel erweitert die bestehende Auswahl auf das zweite Wort im Absatz, in dem sich die Auswahl befindet:
    Code:
    select word 2 of paragraph 1 of selection existing selection add to
    Dafür brauchst Du nichs auszuwählen.
    Dafür reicht die Referenzierung.
    Beispiel:
    Code:
    set text from character myStart to character myEnd of parent story of item i of mySearchResult to "\t\n"
    
    Da sich während dem Durchlaufen der Schleife die Textmenge ändert, solltest Du die Schleife rückwärts laufen lassen (also beim letzten gefundenen Objekt anfangen):
    Code:
    tell application "InDesign CS"
    	tell active document
    		set myvar to "Suchwort"
    		set mySearchResult to search for myvar
    		repeat with i from (count of mySearchResult) to 1 by -1
    			set myStart to index of item i of mySearchResult
    			set myEnd to index of last character of line 1 of item i of mySearchResult
    			set text from character myStart to character myEnd of parent story of item i of mySearchResult to "\t\n"
    		end repeat
    	end tell
    end tell
    
     
  5. Danko

    Danko Thread Starter MacUser Mitglied

    Beiträge:
    25
    Zustimmungen:
    0
    Registriert seit:
    14.01.2005
    so langsam versteh ichs (glaub ich) ;) .. Nochmal vielen Dank für die Starthilfe .. Den Kniffel, dass es sich um das einzfügende tab um einen rechtstab handeln sollte (wüstes Zeichen im InDesign ^y, selbst noch nie gesehen) hab ich sogar selbst umfahren können.. ;)

    set text from character myStart to character myEnd of parent story of item i of mySearchResult to ("Ersetztext" & tab & "0" & return)
    -- tab setzen
    make new tab stop at text from character myStart to character myEnd of parent story of item i of mySearchResult with properties {position:179.0, alignment:right align}

    wenn irgendjemand aber mal eine (speziell) InDesign AppleScript Dokumentation auftun sollte, die so hübsch geschrieben ist wie der AppleScript Reference Guide von Apple: Immer her damit!

    Merci!
     
Die Seite wird geladen...
Ähnliche Themen - AppleScript Newbie definiere Forum Datum
Einzelne Wörter aus einem Text in einer Tabelle suchen und im Text ersetzen Scripting und Automatisierung 28.10.2016
AppleScript & Mail: Mail aus der Inbox auswählen Scripting und Automatisierung 06.10.2016
Nur mittels Applescript neue plist im Ordner "LaunchAgents" erstellen? Scripting und Automatisierung 02.10.2016
AppleScript für OSX Mail zeitversetztes senden Scripting und Automatisierung 16.09.2016
newbie: fragen zu applescript X Scripting und Automatisierung 27.03.2005

Diese Seite empfehlen

Benutzerdefinierte Suche