- Сообщения
- 470
- Реакции
- 228
Отыскался старый скрипт, который копирует выделенный фрагмент текста в новый фрейм.
Пытаюсь сделать возможной отмену выполнения одним нажатием Ctrl-Z
Добавил пару строк
Но скрипт перестал работать. Что неправильно?
Код:
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));
}
Добавил пару строк
Код:
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,UndoModes.ENTIRE_SCRIPT);