Für den Zeitschriftenumbruch ist es ja sehr angenehm mit mehrspaltigen Textrahmen zu arbeiten.
Es kommt aber oft vor, dass man aus irgendeinem Grund diesen mehrspaltigen Rahmen in einzelne Rahmen aufteilen möchte (z.B. damit wenn eine Spalte höher werden soll als die anderen).
Da ich für diesen Zweck keine Funktion bzw. noch kein Skript gefunden habe, habe ich folgendes programmiert:
//Textrahmen_trennen.jsx
//
//
// Dokument geöffnet?
if (app.documents.length == 0) {
alert("Kein Dokument geöffnet");
exit();
}
if (app.selection.length > 0) {
var myDoc = app.documents[0];
var myTextFrames;
var myNewTextFrame;
var myOldTextFrame;
var myGB;
var myWidth;
var myColumns;
var myInterval;
var i;
var j;
// Markierte Textrahmen abfragen
switch(app.selection[0].constructor.name){
case "Text":
case "InsertionPoint":
case "Character":
case "Word":
case "Line":
case "Paragraph": myTextFrames = app.selection[0].parentTextFrames; break;
case "TextFrame": myTextFrames =app.selection; break;
default:
alert("Fehler \nKeinen Textrahmen erwischt, \nsondern (in english) \"" + app.selection[0].constructor.name + "\"!");
exit();
}
//alert ("Anzahl: "+ myTextFrames.length);
for (i=0; i myWidth = myTextFrames.textFramePreferences.textColumnFixedWidth;
myColumns = myTextFrames.textFramePreferences.textColumnCount;
myInterval = myWidth + myTextFrames.textFramePreferences.textColumnGutter;
// Spaltenzahl auf 1 zurücksetzen, Neue Rahmenbreite = Alte Spaltenbreite
myTextFrames.textFramePreferences.textColumnCount = 1;
myTextFrames.textFramePreferences.textColumnFixedWidth = myWidth;
myTextFrames.textFramePreferences.useFixedColumnWidth = true;
myTextFrames.textFramePreferences.useFixedColumnWidth = false;
myOldTextFrame = myTextFrames;
// Textrahmen duplizieren und versetzt einfügen, Inhalt entfernen und Textfluss weiterführen
for (j=1; j myNewTextFrame = myOldTextFrame.duplicate(undefined, [myInterval,0]);
myNewTextFrame.parentStory.texts[0].contents ="";
myNewTextFrame.previousTextFrame = myOldTextFrame;
myOldTextFrame = myNewTextFrame;
}
}
}
else {
alert("Es ist nichts markiert! Bitte den/die Textrahmen auswählen.");
}
Vielleicht sucht ja einmal jemand danach...
Gruß, Peter