[ID CC-CC2021] Как назначить стиль "символу" привязанного объекта?

catpaw

Топикстартер
12 лет на форуме
Сообщения
245
Реакции
10
Всем доброго времени суток!
Собрала скрипт, создающий из выделенного текста привязанный объект, в котором назначаю стиль самому объекту.
Но назначить стиль символу, на котором этот объект стоит (или каковым он является?) не могу - не могу попасть на сам знак, который нужно изменить. Вот сам код
Код:
var H, W, OSName;
H = 3.5;
W = 3;
OSName = "SubSup";

var IP = app.activeDocument.selection[0].insertionPoints[0];   
var Pg = IP.parentTextFrames[0].parentPage;
var Frame = Pg.textFrames.add();
    var Sel = app.activeDocument.selection[0];
    var p = Sel.paragraphs[0];

    Frame.geometricBounds = [0,0, parseFloat(H), parseFloat(W)];

    app.activeDocument.selection[0].move(LocationOptions.AFTER, Frame.texts[0]);
    Frame.anchoredObjectSettings.insertAnchoredObject(IP);
    OStyle = app.activeDocument.objectStyles.itemByName(OSName);
//назначен стиль привязанному объекту
    Frame.appliedObjectStyle = OStyle;
//это "буква" привязанного объекта, заданная в лоб. как скрипту попасть на нее?
    var C = p.characters[1];
    C.select();
    C.appliedCharacterStyle = app.activeDocument.characterStyles[0];
    C.clearOverrides(OverrideType.CHARACTER_ONLY);
 

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
var C = Frame.parent;

В целом код опасный. Сильно зависит от того, что выделено и выделено ли.
 
  • Спасибо
Реакции: catpaw

azz

alexey
15 лет на форуме
Сообщения
711
Реакции
359
так объект привязывается не к какому-то конкретному символу параграфа, а туда где у вас insertionPoints
если нужно получить следующий символ за выделенным текстом то вроде как-то так должно быть
var C = p.characters[Sel.length]
 
  • Спасибо
Реакции: catpaw

catpaw

Топикстартер
12 лет на форуме
Сообщения
245
Реакции
10
var C = Frame.parent;

В целом код опасный. Сильно зависит от того, что выделено и выделено ли.
Все выделение съедает новый фрейм привязанного объекта. Оставался InsertionPoint.
Он у меня сработал! Хотя пыталась до этого паренты ставить, не помню уже какие но не срабатывало...
правда я тогда выделения текста не делала...
 

catpaw

Топикстартер
12 лет на форуме
Сообщения
245
Реакции
10
так объект привязывается не к какому-то конкретному символу параграфа, а туда где у вас insertionPoints
если нужно получить следующий символ за выделенным текстом то вроде как-то так должно быть
var C = p.characters[Sel.length]
Ваша строчка тоже получилась! Только с var C = p.characters[Sel.length+1]
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851

catpaw

Топикстартер
12 лет на форуме
Сообщения
245
Реакции
10
У вас, наверное, строка целиком выделена
Нет, я выделяю несколько знаков, загоняю в привязанный фрейм и этому фрейму назначаю стиль символа. Все равно спасибо, по ходу буду за скриптом следить ;)
 

azz

alexey
15 лет на форуме
Сообщения
711
Реакции
359
это вы таким образом формулы рисуете? )