Скрипт SelectedTextToNewFrame
Предназначение скрипта ясно из его названия. Он копирует выделенный фрагмент текста в новый фрейм. Если объем подобной работы у вас большой, то, конечно, надо его использовать, задав сочетание «горячих клавиш» для вызова. Скрипт работает в версиях Индизайна CS2 и CS3. Автор скрипта неизвесен.
if (app.documents.length > 0 && app.selection.length == 1 && app.selection[0].hasOwnProperty("baseline") && app.selection[0].characters.length > 0) {
selectedTextToNewFrame(app.selection[0]);
}
function selectedTextToNewFrame(sText) {
hProps = [sText.paragraphs[0].horizontalOffset - sText.paragraphs[0].leftIndent - sText.paragraphs[0].firstLineIndent, sText.parentTextFrames[0].textFramePreferences.textColumnFixedWidth];
nFrame = sText.parentTextFrames[0].parent.textFrames.add();
nFrame.geometricBounds = [sText.lines[-1].baseline, hProps[0], sText.lines[0].baseline - sText.lines[0].ascent, hProps[0] + hProps[1]];
nFrame.textFramePreferences.firstBaselineOffset = FirstBaseline.ascentOffset;
nFrame.textWrapPreferences.textWrapType = TextWrapTypes.BOUNDING_BOX_TEXT_WRAP;
nFrame.textWrapPreferences.textWrapOffset = [sText.paragraphs[0].spaceBefore,0,sText.paragraphs[-1].spaceAfter,0];
sText.move(LocationOptions.atBeginning, nFrame.insertionPoints.item(0));
// End
Для использования скопируйте программный код в простой текстовый редактор, например, AkelPad, и сохраните в папку с вашими скриптами с именем SelectedTextToNewFrame. Для InDesign CS2 расширение файла задайте *.js, для InDesign CS3 — *.jsx
Стандартным Блокнотом от Windows лучше не пользоваться, так как он заменяет прямые кавычки на кавычки-лапочки, и из-за этого скрипт начинает выдавать ошибки.
В коде скрипта ошибка. Правильный скрипт расположен зесь: http://www.indesignscript.de/skript-detail/detail/News/selectedtexttonewframe/
Вот правильный и немного модифицированный код:
function main(){
if (app.documents.length > 0 && app.selection.length == 1 && app.selection[0].hasOwnProperty("baseline") && app.selection[0].characters.length > 0) {
selectedTextToNewFrame(app.selection[0]);
}
function selectedTextToNewFrame(sText) {
hProps = [sText.paragraphs[0].horizontalOffset - sText.paragraphs[0].leftIndent - sText.paragraphs[0].firstLineIndent, sText.parentTextFrames[0].textFramePreferences.textColumnFixedWidth];
nFrame = sText.parentTextFrames[0].parent.textFrames.add();
nFrame.geometricBounds = [sText.lines[-1].baseline, hProps[0], sText.lines[0].baseline - sText.lines[0].ascent, hProps[0] + hProps[1]];
nFrame.textFramePreferences.firstBaselineOffset = FirstBaseline.ascentOffset;
nFrame.textWrapPreferences.textWrapMode = TextWrapModes.BOUNDING_BOX_TEXT_WRAP;
nFrame.textWrapPreferences.textWrapOffset = [sText.paragraphs[0].spaceBefore,0,sText.paragraphs[-1].spaceAfter,0];
sText.move(LocationOptions.atBeginning, nFrame.insertionPoints.item(0));
}
}
app.doScript(main, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT);