hilfdirselbst.ch
Facebook Twitter gamper-media
Edil S
Beiträge: 82
10. Okt 2013, 13:43
Beitrag #1 von 5
Bewertung:
(1315 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Texte automatisiert in Marginalien ändern


Hallo,

gibt es einen Weg, mit Scripten oder Grep automatisiert Texte in Marginalien mit entsprechend verankerten Objektrahmen zu ändern?

Beispiel:
Text Text Text#AMarginaltext#B Text Text Text#AMarginaltext#B Text Text Text#AMarginaltext#B.

(D.h. #A = Marginaltext-Beginn, #B = Marginaltext-Ende.)

Das Script „insertAnchoredFrame_simpleVersion.jsx“ zeigt als Resultat genau das Ergebnis – nur dass hier der entsprechende Marginaltext leider markiert werden muss.
Wenn dies jetzt noch automatisch funktionieren würde, wäre dies natürlich prima …

Danke im Voraus!

Edil
(OSX10.8.5 / ID CS5.5 + CS6) Top
 
X
Kai Rübsamen  M  p
Beiträge: 4520
10. Okt 2013, 17:34
Beitrag #2 von 5
Beitrag ID: #518319
Bewertung:
(1261 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Texte automatisiert in Marginalien ändern


Edil, wenn du eine idml-Datei mit Beispiel vorher und Beispiel nachher sowie das von dir genannte Skript posten würdest, gäbe es viell. auch eine Antwort ;-)
Gruß Kai Rübsamen
_______________________
als Antwort auf: [#518309] Top
 
Edil S
Beiträge: 82
11. Okt 2013, 07:21
Beitrag #3 von 5
Beitrag ID: #518329
Bewertung:
(1219 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Texte automatisiert in Marginalien ändern


Guten Morgen Kai,

danke für Deine Antwort.
Anhängend nun die idml-Datei und das Skript.

Gruß Edil
als Antwort auf: [#518319] Top
 
Kai Rübsamen  M  p
Beiträge: 4520
11. Okt 2013, 08:44
Beitrag #4 von 5
Beitrag ID: #518330
Bewertung:
(1195 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Texte automatisiert in Marginalien ändern


Versuch mal beigefügte Zeilen u. Rückmeldung. Ich hab es leider nicht geschafft, die Hilfszeichen gleich zu löschen > da kommt anscheinend der Index durcheinander. Daher vorerst zwei Suchläufe.

Code
var curDoc = app.documents[0]; 

// Zurücksetzen der Sucheinstellungen
app.findGrepPreferences = app.changeGrepPreferences = null;
// Setzen der Sucheinstellungen
app.findGrepPreferences.findWhat= "#A.+?#B";

// Suchen und Ergebnisse in Variable speichern
var results = curDoc.findGrep(true);

// Den Text in einen neuen Rahmen verschieben
for ( var n=0; n<results.length; n++ ) {
var curResult = results[n];
var a = curResult.insertionPoints[0];
var newTf = a.textFrames.add({geometricBounds: [ "0p", "0p", "6mm", "24mm"]});
newTf.appliedObjectStyle = curDoc.objectStyles.itemByName("Marginalien");
curResult.move(LocationOptions.AFTER, newTf.insertionPoints[0]);
}

// den neuen Rahmen 'säubern' und AF zuweisen
app.findGrepPreferences.findWhat = "#A(.+?)#B";
app.changeGrepPreferences.changeTo = "$1";
app.changeGrepPreferences.appliedParagraphStyle = "Marginalie";
curDoc.changeGrep();

// Zurücksetzen der Sucheinstellungen
app.findGrepPreferences = app.changeGrepPreferences = null;


edit Kann mir jemand erklären, warum hier

Code
app.findGrepPreferences.findWhat = "#A(.+?)#B"; 
app.changeGrepPreferences.changeTo = "$1";

// Suchen und Ergebnisse in Variable speichern
var results = curDoc.changeGrep(true);

// Den Text in einen neuen Rahmen verschieben
for ( var n=0; n<results.length; n++ ) {
var curResult = results[n];
$.writeln(curResult.contents);
}

plötzlich alles durcheinander gerät? In meinem Test steht dann z.B. nur "Margi", anstelle von "Marginalie 1" in der Konsole.

Danke.
Gruß Kai Rübsamen
_______________________
als Antwort auf: [#518329]
(Dieser Beitrag wurde von Kai Rübsamen am 11. Okt 2013, 08:58 geändert)
Top
 
Edil S
Beiträge: 82
11. Okt 2013, 09:17
Beitrag #5 von 5
Beitrag ID: #518331
Bewertung:
(1178 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Texte automatisiert in Marginalien ändern


Hallo Kai,

bei uns funktioniert Dein Skript einwandfrei – genau dieses Resultat hatten wir uns gewünscht!

Ganz herzlichen Dank und Gruß
Edil
als Antwort auf: [#518330] Top
 
X