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

  • Автор темы Автор темы Dziglo
  • Дата начала Дата начала
Может кто-нибудь глянуть скрипт
ultraborder ? :)
Ну, у меня на CS 5.5 рус. вылезает ошибка, которая, как я полагаю, снова связана с локализацией:

ultraborder-1.jpg ultraborder-2.jpg
 
Может кто-нибудь глянуть скрипт
ultraborder ? :)
Скрипт у меня заработал только после того, как я в строке 144 оставил width -= 0.353; и в строках 160-166 и 173-176 удалил все + " pt" и + " mm". Естественно, так делать не нужно :) . Но работает :)
 
А если поставить width-=parseInt(mySe...*0.353) ?
 
  • Спасибо
Реакции: LeonidB
Тогда всё работает!
У меня скрипт ultraborder и без изменений работает (CS3 с русским интерфейсом). Но почему при повторном запуске скрипта, он увеличивает ширину ранее созданной им же таблицы-рамки? Как это можно убрать? Чтобы ширина оставалось такой же (в случае если ширина колонки остается без изменений).
 
он увеличивает ширину ранее созданной им же таблицы-рамки?
А откуда он узнает, какая таблица создана им, а какую надо? Наверное, для начала надо определиться с ответом на этот вопрос.
 
А откуда он узнает, какая таблица создана им, а какую надо? Наверное, для начала надо определиться с ответом на этот вопрос.
Ну когда я запускаю скрипт в первый раз, то он делают таблицу с точно такой же шириной что и ширина колонки, в которой находится абзац. Как-то же значит узнает? ))
 
Вообще, мельком глянул код - а разве не так задумано?
Строки 129-131:
Код:
with (myTable) {
                    width += topBorderStrokeWeight;   
                }
закомментируйте и не будет расширять ничего
 
Вообще, мельком глянул код - а разве не так задумано?
Строки 129-131:
Код:
with (myTable) {
                    width += topBorderStrokeWeight;  
                }
закомментируйте и не будет расширять ничего

Закомментировал, теперь ширина не увеличивается, а уменьшается. ) Ладно, пусть так будет. :-/
Вы не могли бы помочь еще? Что поменять в скрипте, чтобы установки по умолчанию были чуть-чуть другие.
А именно:
Style (стиль линии) — сплошная (а не тройная),
Fill ColorBlack (а не None),
Fill Tint20% (а не 100%).
 
А я бы помечтал :) - о возможности задания не отдельных установок для стиля линии, толщины, цвета обводки и заливки, а о выборе уже готового стиля ячейки (это, конечно же, не для старых версий ID, а для тех, у которых стили ячеек существуют). То есть запускаешь скрипт - и такому-то абзацному стилю предлагается задать нужный стиль ячейки. И при этом запоминался бы последний выбор.
 
Fill Tint20% (а не 100%).
Код:
var mySelectedFillTint = percentComboboxes.add({editValue:20, stringList:myPercentList, smallNudge:5, largeNudge:10, maximumValue:100});
Fill ColorBlack (а не None),
Код:
var mySelectedFillColor = dropdowns.add({selectedIndex:1, stringList:mySwatchesList}); // Или какое нибудь другое число вместо 0 и 1
Style (стиль линии) — сплошная (а не тройная),
Этот момент я не совсем понял - там же вроде и так по умолчанию выбирается solid?
 
Код:
var mySelectedFillTint = percentComboboxes.add({editValue:20, stringList:myPercentList, smallNudge:5, largeNudge:10, maximumValue:100});

Код:
var mySelectedFillColor = dropdowns.add({selectedIndex:1, stringList:mySwatchesList}); // Или какое нибудь другое число вместо 0 и 1

Этот момент я не совсем понял - там же вроде и так по умолчанию выбирается solid?

Не знаю, у меня при запуске скрипта, по умолчанию — тройная. :-\
 
Снова трудности локализации? Поставьте тут
Код:
if (myStrokeStyles[myCounter].name == "Solid") {
            mySolidId = myCounter;
        }
вместо "Solid" нужное имя и (возможно) наступит счастье
 
  • Спасибо
Реакции: Dziglo
Ну когда я запускаю скрипт в первый раз, то он делают таблицу с точно такой же шириной что и ширина колонки, в которой находится абзац. Как-то же значит узнает? ))
Логика работы скрипта следующая: он просматривает текущее выделение на наличие параграфов. Если параграф не таблица то создает таблицу, если таблица (была создана только что) то расширяет ее на заданную ширину. По этой логике увеличиваться будет любая таблица попавшая в выделение, а выход - не выделять никаких таблиц. ;)
 
Логика работы скрипта следующая: он просматривает текущее выделение на наличие параграфов. Если параграф не таблица то создает таблицу, если таблица (была создана только что) то расширяет ее на заданную ширину. По этой логике увеличиваться будет любая таблица попавшая в выделение, а выход - не выделять никаких таблиц. ;)
Не совсем понял. ) то есть это «родовая травма» скрипта и исправить ее нельзя?)
 
то есть это «родовая травма» скрипта и исправить ее нельзя?)
Это не родовая травма - это алгоритм работы скрипта.
Повторяю- для того, чтобы он этого не делал, нужно отделить мухи от котлет, то есть не выделять таблиц перед запуском скрипта. Иначе он не понимает, какая таблица уже существовала перед его запуском, а какая создалась непосредственно во время его отработки. В принципе, можно, конечно, извернуться, скажем, после создания таблицы присваивать ей некое имя, которое по отработке менять на другое, но это подразумевает некоторые дополнительные телодвижения.
 
Это не родовая травма - это алгоритм работы скрипта.
Повторяю- для того, чтобы он этого не делал, нужно отделить мухи от котлет, то есть не выделять таблиц перед запуском скрипта. Иначе он не понимает, какая таблица уже существовала перед его запуском, а какая создалась непосредственно во время его отработки. В принципе, можно, конечно, извернуться, скажем, после создания таблицы присваивать ей некое имя, которое по отработке менять на другое, но это подразумевает некоторые дополнительные телодвижения.
А что значит выделять/не выделять таблиц перед запуском? Чтобы скрипт сработал нужно выделить текстовый блок, я его и выделяю.
 
я его и выделяю.
Я ж говорю, скрипт работает с выделенными параграфами. Если сгенерированная перед этим таблица как то им модифицируется, значит она попадает в это выделение. Как то так
 
  • Спасибо
Реакции: Dziglo
Вообще говоря, и вправду, какая то мозговзрывающая логика у этого скрипта. Зачем такой хитрый и багоопасный огород городить, когда можно сразу по создании ширину таблицы устанавливать?
К примеру, действительно, комментируем строки 129-131:
Код:
//with (myTable) {
//                    width += topBorderStrokeWeight;   
//                }
Зато, после строки 177 вставляем
Код:
        width += topBorderStrokeWeight;
 
Вообще говоря, и вправду, какая то мозговзрывающая логика у этого скрипта. Зачем такой хитрый и багоопасный огород городить, когда можно сразу по создании ширину таблицы устанавливать?
Это ты для CS2 никогда десять лет назад скриптов не писал!