[ID CC-CC2022] Почему по-разному интерпретируется

  • Автор темы Автор темы hulk1776
  • Дата начала Дата начала

hulk1776

Топикстартер
15 лет на форуме
Сообщения
738
Реакции
21
Один скриптик генерирует содержание и ставит (должен ставить) его на нечетную страницу (7), но ставится на 6-ю. Приходится руками передвигать на место.
Второй скрипт-макрос (VBA) ставит страницу на 8 полосу (английское содержание).
JSX:
Код:
app.activeWindow.activePage = aD.pages[6];
    var mSel = aD.createTOC(myTOCStyle, undefined, undefined, [25, 60]); // x, y
    var mFr = mSel[0].textContainers[0];
VBA:
Код:
Set mFrame1 = aD.Pages(8).TextFrames.Add
mFrame1.GeometricBounds = bnds1 ' // = Array(0+(3*i), 5+(3*i), 0+(3*i) + 5, 5+(3*i)+10);
mFrame1.Contents = mTOCText

Первый код ставит всегда на предыдущую, а второй всегда на нужную.
Еще заметил, что если селекшн находится на 6 странице, то консоль ESTK пишет, что mSel.parentPage.documentOffset = 5, а mSel.parentPage.name = 6.
Если выделенное на 7 полосе, то 6 и 7 соответственно. Где тут зарыта собака? Короче говоря, как надо записать, чтобы фрейм создался именно на 7 полосе, а не 6-й.
 
Последнее редактирование:
В VBA в отличие от JS индексация идет с 1 а не с 0 - оно?
 
Короче говоря, как надо записать, чтобы фрейм создался именно на 7 полосе, а не 6-й.
Видимо, надо записать pages[7] вместо pages[6] :)
Это не массив, нумерация идёт с единицы.
documentOffset — это сдвиг относительно первого элемента: 1 + 5 = 6.
 
Работает так:
Код:
    app.activeWindow.activePage = aD.pages[6];
    var mSel = aD.createTOC(myTOCStyle, undefined, undefined, [25, 60]); // x, y
Фрейм рисуется на 6 полосе, но фокус сдвигается на 7-ю.

Код:
 app.activeWindow.activePage = aD.pages[5];
    var mSel = aD.createTOC(myTOCStyle, undefined, undefined, [25, 60]); // x, y
Фрейм рисуется на 6 полосе и фокус не сдвигается.

Код:
 app.activeWindow.activePage = aD.pages[7];
    var mSel = aD.createTOC(myTOCStyle, undefined, undefined, [25, 60]); // x, y
Фрейм рисуется на 8 полосе и фокус не сдвигается.

То есть фрейм маниакально рисуется на левой стороне разворота.
 
Наверно, координаты заданы для разворота, а не для страниц по отдельности.
Это можно поменять в настройках.
 
Зато рисование прямоугольника проходит как положено.
Код:
var mRect = aD.pages[6].rectangles.add();
То есть точно по номеру страницы "+ 1".
Может это особенность createTOC'a?
 
Не стал ломать голову. Просто назначил
aD.viewPreferences.rulerOrigin = RulerOrigin.SPREAD_ORIGIN
и задал абс. координаты. Если гора не идет...