Избранное »

22.09.2014 – 07:27 | 2 комментария | 27 557 views

Здравствуйте все, кто работает в Индизайне!
Извещаем вас о том, что на youtube.com работает канал «InDesign Мастерская вёрстки». Там уже размещены более 70 видео с полным описанием как работать с программой DoTextOK. Другие интересные темы, касающиеся работы …

Читать полностью »
Работа в InDesign

Хитрости и секреты, приемы работы, уроки

Новая версия!

Особенности новой версии Индизайна

Плагины

Описание плагинов, информация о плагинах для работы с Adobe InDesign

Скрипты

Готовые к использованию скрипты для Adobe InDesign

Скриптинг

Описание языка, приёмов и методов программирования для Adobe InDesign

Home » Скрипты

Скрипт SelectedTextToNewFrame

Добавлено на 17.10.2008 – 21:322 комментария | 383 views

Предназначение скрипта ясно из его названия. Он копирует выделенный фрагмент текста в новый фрейм. Если объем подобной работы у вас большой, то, конечно, надо его использовать, задав сочетание «горячих клавиш» для вызова. Скрипт работает в версиях Индизайна 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 лучше не пользоваться, так как он заменяет прямые кавычки на кавычки-лапочки, и из-за этого скрипт начинает выдавать ошибки.

2 комментария »

  • bebs:

    В коде скрипта ошибка. Правильный скрипт расположен зесь: http://www.indesignscript.de/skript-detail/detail/News/selectedtexttonewframe/

  • bebs:

    Вот правильный и немного модифицированный код:
    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);

Оставить комментарий!

Вы должны быть в системе чтобы оставить комментарий.