[ID CS3 и ранее] Преобразование абзаца в таблицу

  • Автор темы Автор темы Dziglo
  • Дата начала Дата начала
Или вот еще прелесть.
Пресловутый viewPreferences.measurementUnit, как положено порядочному нумератору, имел числовое значение. А при вызове toSource() выдавал строковое значение, например "POINTS".
 
эти вот скрипты были написаны в виде ранних экспериментов при отсутствии такой элементарной штуки, как стили таблиц и ячеек.
А зачем все таки такое хитрое двухступенчатое изменение ширины? Почему прямо нельзя?
 
Сейчас трудно сказать. Но в свое время определенная логика была, видимо.
 
Или вот еще прелесть.
Пресловутый viewPreferences.measurementUnit, как положено порядочному нумератору, имел числовое значение. А при вызове toSource() выдавал строковое значение, например "POINTS".

так и сейчас точно так же ведь
 
при вызове toString() возвращает строку, присваивать можно как MeasurementUnits.POINTS, так и числовое значение 2054188905
.toSource() вернет объект

разве не так было?


ну и теперь есть scriptPreferences.measurementUnits, чтобы настройки документа не трогать


попробовал вот так, ибо cs2 сейчас уж где взять...

app.scriptPreferences.version = 3;
app.viewPreferences.horizontalMeasurementUnits.toString()
app.viewPreferences.horizontalMeasurementUnits.toSource()

toSource() выдает числовое значение
(new Number(2054187363))

а toString() строку с ним же
2054187363

поведение меняется с 7 версии, после нее toString возвращает POINTS, а не число

будем знать!
 
Последнее редактирование:
А ты проведи эксперимент.
Код:
app.scriptPreferences.version = 8
app.viewPreferences.horizontalMeasurementUnits.toString()
выдает, скажем, PICAS
Код:
app.scriptPreferences.version = 5
app.viewPreferences.horizontalMeasurementUnits.toString()
выдает "2054187363"

Тот еще квест, повторяю.
 
  • Спасибо
Реакции: Skvoznyak
да-да, как раз проводил, дополнил пост
 
Вообще говоря, и вправду, какая то мозговзрывающая логика у этого скрипта. Зачем такой хитрый и багоопасный огород городить, когда можно сразу по создании ширину таблицы устанавливать?
К примеру, действительно, комментируем строки 129-131:
Код:
//with (myTable) {
//                    width += topBorderStrokeWeight;  
//                }
Зато, после строки 177 вставляем
Код:
        width += topBorderStrokeWeight;

upload_2016-3-3_21-40-5.png


Так? Вставил. Все равно таблица расширяется.
 
Снова трудности локализации? Поставьте тут
Код:
if (myStrokeStyles[myCounter].name == "Solid") {
            mySolidId = myCounter;
        }
вместо "Solid" нужное имя и (возможно) наступит счастье

А со сплошной линией я разобрался. Нужно в строке 51 другое значение поставить:
var mySolidId = 17;
 
Так? Вставил. Все равно таблица расширяется.
Гм, и то верно.
Наверное, правильнее будет так:
Строки 129-131 комментируем по любому, точно так же после 177 строки вставляем width+=top...
Но! Попутно при этом комментируем фигурную скобку } в 140 строке, зато добавляем ее после вставленной уже 178 строки.
То есть, закидываем всю последовательность действий под else из 132 строки, где она, по логике, и должна находиться. Раз Олег дает добро так как резонов не помнит, будем дистанционно кроить его код. ;)
 
Гм, и то верно.
Наверное, правильнее будет так:
Строки 129-131 комментируем по любому, точно так же после 177 строки вставляем width+=top...
Но! Попутно при этом комментируем фигурную скобку } в 140 строке, зато добавляем ее после вставленной уже 178 строки.
То есть, закидываем всю последовательность действий под else из 132 строки, где она, по логике, и должна находиться. Раз Олег дает добро так как резонов не помнит, будем дистанционно кроить его код. ;)


Сделал. Теперь при повторном запуске скрипта вообще ничего не происходит.
 
Теперь при повторном запуске скрипта вообще ничего не происходит.
Гм, ну так для того же все и делалось, чтобы при повторном запуске ничего не происходило? Или я что-то недопонял? 'hmmm'
 
Гм, ну так для того же все и делалось, чтобы при повторном запуске ничего не происходило? Или я что-то недопонял? 'hmmm'

Нет, чтобы при повторном запуске он не менял ширину таблицы. Но если я хочу например, убрать (или наоборот -- добавить) фон таблице-абзацу, то он же должен это делать. Сейчас же, после изменений в скрипте, после повторного запуска он вообще никак не реагирует.
И кстати, он стал изначально делать ширину таблицы больше ширины колонки. Раньше эти ширИны были равны (после первого запуска).
 
Нет, чтобы при повторном запуске он не менял ширину таблицы. Но если я хочу например, убрать (или наоборот -- добавить) фон таблице-абзацу, то он же должен это делать. Сейчас же, после изменений в скрипте, после повторного запуска он вообще никак не реагирует.
Аааа! Тогда, конечно, так делать нельзя, но мы снова возвращаемся к самой первоначальной проблеме - он должен как то определить, таблица только что сконвертирована или уже существовала на момент запуска скрипта. *(
 
Аааа! Тогда, конечно, так делать нельзя, но мы снова возвращаемся к самой первоначальной проблеме - он должен как то определить, таблица только что сконвертирована или уже существовала на момент запуска скрипта. *(

А нельзя ли как-то узнавать ширину колонки, записывать ее в переменную, а потом при повторном запуске скрипта придавать ширине таблицы значение этой переменной?
 
Аааа! Тогда, конечно, так делать нельзя, но мы снова возвращаемся к самой первоначальной проблеме - он должен как то определить, таблица только что сконвертирована или уже существовала на момент запуска скрипта. *(
ScriptLabel?
 
можно таблице прописать, что она создана скриптом

myTable.insertLabel("createdWithMyFabulousScript","true");