[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Skript für die Textauswahl

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Skript für die Textauswahl

29design
Beiträge gesamt: 5

30. Mai 2016, 15:36
Beitrag # 1 von 6
Bewertung:
(1504 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich bin recht neu auf dem Gebiet des Skriptens und suche aktuell eine Möglichkeit einen beliebigen Text in einem InDesign Dokument zu suchen und zu markieren (selektieren) und danach den Rahmen an den Inhalt (FitOptions.frameToContent) anzupassen. Habe mir gedacht ich könnte das über ne Grep Funktion machen, komme da aber leider gar nicht weiter (siehe unten). Kann jemand helfen?

Vielen Dank im Voraus

Code
app.findGrepPreferences = NothingEnum.nothing; 
app.changeGrepPreferences = NothingEnum.nothing;
var eingabe = prompt("Bitte Suchbegriff eingeben:");
app.findGrepPreferences.findWhat = eingabe;

X

Skript für die Textauswahl

Kai Rübsamen
Beiträge gesamt: 4684

30. Mai 2016, 17:00
Beitrag # 2 von 6
Beitrag ID: #550006
Bewertung:
(1473 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo u. Herzlich Willkommen in der Skriptwerkstatt.

Du musst so denken, wie im UI (und ein bisschen weiter …):

Wenn du die Suche festlegst, musst du sie auch ausführen. Was aber, wenn der User auf 'Abbrechen' geklickt hat? Dann muss auch dein Skript abbrechen.

Die Textstelle nutzt dir ja erstmal nichts. Du musst also für den Text den dazugehörigen Textrahmen finden und dann diesen anpassen.

In manchen Fällen kann durch 'fit()' der Zeilenfall verrutschen. Dann müsste man das Anpassen anders schreiben.

Code
// die Einstellungen zurücksetzen 
app.findGrepPreferences = app.changeGrepPreferences = null;
// die Eingabe vorbereiten …
var eingabe = prompt("Bitte Suchbegriff eingeben:", "");
// … und falls nicht auf 'Abbrechen' geklickt wurde …
if (eingabe == null) {
exit();
}
// … in das Suchfeld übernehmen
app.findGrepPreferences.findWhat = eingabe;
// die Suche ausführen
var allFounds = app.documents[0].findGrep();
// die Einstellungen zurücksetzen
app.findGrepPreferences = app.changeGrepPreferences = null;

// eine Schleife durch alle Fundstellen
for (var i = 0; i < allFounds.length; i++) {
var curFound = allFounds[i];
// den passenden Textrahmen ermitteln
var tf = curFound.parentTextFrames[0];
// und den Rahmen anpassen
tf.fit(FitOptions.frameToContent);
}



als Antwort auf: [#550001]
(Dieser Beitrag wurde von Kai Rübsamen am 30. Mai 2016, 17:04 geändert)

Skript für die Textauswahl

29design
Beiträge gesamt: 5

31. Mai 2016, 08:45
Beitrag # 3 von 6
Beitrag ID: #550017
Bewertung:
(1341 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Super. Das hilft mir weiter.

Vielen Dank :)


als Antwort auf: [#550006]

Skript für die Textauswahl

29design
Beiträge gesamt: 5

31. Mai 2016, 09:40
Beitrag # 4 von 6
Beitrag ID: #550019
Bewertung:
(1317 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Sorry hab doch noch ne Frage.
Ich habe jetzt hier das Problem, dass der zu ändernde Text (bzw. das Textfeld) in einem anderen Textfeld liegt.
Wie komme ich denn daran? Bestimmt über parent, oder?


als Antwort auf: [#550017]

Skript für die Textauswahl

Kai Rübsamen
Beiträge gesamt: 4684

31. Mai 2016, 10:27
Beitrag # 5 von 6
Beitrag ID: #550021
Bewertung:
(1297 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das habe ich nicht verstanden! Bitte Beispiel vorher/nachher.


als Antwort auf: [#550019]

Skript für die Textauswahl

29design
Beiträge gesamt: 5

31. Mai 2016, 10:30
Beitrag # 6 von 6
Beitrag ID: #550022
Bewertung:
(1295 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Habs gerade selbst hinbekommen, danke


als Antwort auf: [#550021]
X