Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » alle Texrahmen automatisch in Gruppen an Inhalt anpassen

alle Texrahmen automatisch in Gruppen an Inhalt anpassen

faxinger
Beiträge gesamt: 246

31. Okt 2017, 12:38
Bewertung:

gelesen: 1723

Beitrag als Lesezeichen
Hallo Leute,

leider komme ich nicht weiter: ich möchte automatisch alle Textrahmen eines Dokuments an deren jeweiligen Inhalt anpassen. Diesen Code habe ich schon erstellt:
Code
var _TF = app.activeDocument.activeLayer.textFrames; 
for (var n=0;n<_TF.length; n++)
{
_TF.fit(FitOptions.FRAME_TO_CONTENT)
};

Aber als Ergebnis bekomme ich nur undefined...

Könnt ihr mir dabei auf die Sprünge helfen?
Danke

PS: InDesign CS6 ist meine ID Version

(Dieser Beitrag wurde von faxinger am 31. Okt 2017, 12:39 geändert)

alle Texrahmen automatisch in Gruppen an Inhalt anpassen

Hans Haesler
  
Beiträge gesamt: 5826

31. Okt 2017, 14:59
Bewertung:

gelesen: 1710

Beitrag als Lesezeichen
Hallo faxinger,

füge nach „_TN“ einen Zähler ein:

Code
_TN[n].fit(... usw.) 

Ungeprüft, weil unterwegs. Aber wenn die Textrahmen gruppiert sind, wird es auch nicht funktionieren.

Gruss, Hans

alle Texrahmen automatisch in Gruppen an Inhalt anpassen

Hans Haesler
  
Beiträge gesamt: 5826

31. Okt 2017, 15:26
Bewertung:

gelesen: 1704

Beitrag als Lesezeichen
Hallo faxinger,

jetzt bin ich zurück. Muss aber gleich wieder los.

Ohne Schleife würde es so klappen:

Code
var _TF = app.activeDocument.activeLayer.textFrames.everyItem(); 
_TF.fit(FitOptions.FRAME_TO_CONTENT);

Gruss, Hans

alle Texrahmen automatisch in Gruppen an Inhalt anpassen

faxinger
Beiträge gesamt: 246

31. Okt 2017, 16:23
Bewertung:

gelesen: 1696

Beitrag als Lesezeichen
Hallo Hans,

danke für die Unterstützung, aber leider klappt keine der beiden Varianten. :-(

Es muss doch möglich sein Textrahmen in Gruppen anzupassen...

alle Texrahmen automatisch in Gruppen an Inhalt anpassen

Hans Haesler
  
Beiträge gesamt: 5826

31. Okt 2017, 17:20
Bewertung:

gelesen: 1689

Beitrag als Lesezeichen
Hallo faxinger,

wenn Textrahmen gruppiert sind (egal ob unter sich oder mit Bildrahmen), werden sie mit 'textFrames' nicht gefunden.

Man muss 'allPageItems' verwenden. Damit bekommt man aber alles: Bildrahmen, die importierten Bilder, Textrahmen, Linienrahmen. Und auch die Gruppen selbst.

Also eine Schleife durch die gefundenen Elemente und bei jedem prüfen, ob der Name des 'constructors' eben "TextFrame" ist:

Code
var _aPI = app.activeDocument.activeLayer.allPageItems; 
var _nPI = _aPI.length;
for (var n=0; n<_nPI; n++) {
if (_aPI[n].constructor.name == "TextFrame") {
_aPI[n].fit(FitOptions.FRAME_TO_CONTENT);
}
}

Damit sollte es funktionieren.

Gruss, Hans

alle Texrahmen automatisch in Gruppen an Inhalt anpassen

faxinger
Beiträge gesamt: 246

31. Okt 2017, 18:21
Bewertung:

gelesen: 1685

Beitrag als Lesezeichen
super,
genau so wollte ich es haben.


Vielen Dank und schönen Abend