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

_MBK_

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

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
Или вот еще прелесть.
Пресловутый viewPreferences.measurementUnit, как положено порядочному нумератору, имел числовое значение. А при вызове toSource() выдавал строковое значение, например "POINTS".
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
эти вот скрипты были написаны в виде ранних экспериментов при отсутствии такой элементарной штуки, как стили таблиц и ячеек.
А зачем все таки такое хитрое двухступенчатое изменение ширины? Почему прямо нельзя?
 

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
Сейчас трудно сказать. Но в свое время определенная логика была, видимо.
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Или вот еще прелесть.
Пресловутый viewPreferences.measurementUnit, как положено порядочному нумератору, имел числовое значение. А при вызове toSource() выдавал строковое значение, например "POINTS".

так и сейчас точно так же ведь
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
при вызове 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, а не число

будем знать!
 
Последнее редактирование:

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
А ты проведи эксперимент.
Код:
app.scriptPreferences.version = 8
app.viewPreferences.horizontalMeasurementUnits.toString()
выдает, скажем, PICAS
Код:
app.scriptPreferences.version = 5
app.viewPreferences.horizontalMeasurementUnits.toString()
выдает "2054187363"

Тот еще квест, повторяю.
 
  • Спасибо
Реакции: Skvoznyak

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
да-да, как раз проводил, дополнил пост
 

Dziglo

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

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


Так? Вставил. Все равно таблица расширяется.
 

Dziglo

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

А со сплошной линией я разобрался. Нужно в строке 51 другое значение поставить:
var mySolidId = 17;
 

_MBK_

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

Dziglo

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


Сделал. Теперь при повторном запуске скрипта вообще ничего не происходит.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Теперь при повторном запуске скрипта вообще ничего не происходит.
Гм, ну так для того же все и делалось, чтобы при повторном запуске ничего не происходило? Или я что-то недопонял? 'hmmm'
 

Dziglo

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

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

_MBK_

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

Dziglo

Участник
Топикстартер
Сообщения
221
Реакции
1
Аааа! Тогда, конечно, так делать нельзя, но мы снова возвращаемся к самой первоначальной проблеме - он должен как то определить, таблица только что сконвертирована или уже существовала на момент запуска скрипта. *(

А нельзя ли как-то узнавать ширину колонки, записывать ее в переменную, а потом при повторном запуске скрипта придавать ширине таблицы значение этой переменной?
 

azz

alexey
15 лет на форуме
Сообщения
711
Реакции
359
Аааа! Тогда, конечно, так делать нельзя, но мы снова возвращаемся к самой первоначальной проблеме - он должен как то определить, таблица только что сконвертирована или уже существовала на момент запуска скрипта. *(
ScriptLabel?
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
можно таблице прописать, что она создана скриптом

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