сжимание таблиц по горизонтали

  • Автор темы Автор темы pechenushka
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

pechenushka

Участник
Топикстартер
Сообщения
47
Реакции
0
Когда вставляешь табл. из ворда, то они растянутые. Нужно их ручками сжимать используя клавишу "шифт", чтоб пропорционально... А если этих таблиц не одна сотня..?
Познакомился со скриптом TableFit. Интересно, возможно его переделать так чтоб он пропорционально "сжимал" таблицу по горизонтали до правого края границы фрейма? Думаю на примере понятно, что я хотел сказать.
 

Вложения

  • Untitled-1.jpg
    Untitled-1.jpg
    114.8 КБ · Просм.: 1 160
Ответ: сжимание таблиц по горизонтали

Cкриптов для горизонтального ресэмлинга таблиц полно в инете, например на adobe.com.
 
Ответ: сжимание таблиц по горизонтали

что-то неполучается найти, как правильно искать? Может ссылочку дадите? ранее спасибо
 
Ответ: сжимание таблиц по горизонтали

спасибо огромное!
 
Ответ: сжимание таблиц по горизонтали

А вот Виталий Батушев тоже написал скрипт как раз для поставленной цели, похихикав над этими скриптами с indesignsecrets.

Виталий, не возражаешь, если я его выложу?
 
Ответ: сжимание таблиц по горизонтали

Да... было бы хорошо. Проверил скрипт TableTweakerScripts, взятый с указанного сайта. Хороший, быстрый, только одну табл. во фрейме сжимает. Если их несколько, то на каждой надо поставить курсор и запустить скрипт. Это я могу и ручками сделать. По времени одинаково. Думаю как сделать, чтоб он все табл. во фрейме находил?
 
Ответ: сжимание таблиц по горизонтали

pechenushka сказал(а):
Думаю как сделать, чтоб он все табл. во фрейме находил?
Легко. Взять и немного подправить скрипт ;)
 
Ответ: сжимание таблиц по горизонтали

поработаем... :)
 
Ответ: сжимание таблиц по горизонтали

неполучается... пробовал менять кусками из др. скрпт. Понимаю примерно, что отдельные куски кода выполняют, а вот как и что поменять недогоняю. Пробую, конечно, но без результата. Подскажите плиз...
 
Ответ: сжимание таблиц по горизонтали

Выложите код или укажите имя скрипта.
 
Ответ: сжимание таблиц по горизонтали

В функции findTable(obj) поправьте первую строку так:
{return obj.tables[0]} замените на {return obj.tables}
Тогда при поиске будет возвращена не первая найденная таблица, а их массив (если они есть, конечно).
Если же вам надо обработать все таблицы в Story, тогда первая строка должна выглядеть так:
if ((obj.constructor.name == "TextFrame") && (obj.parentStory.tables.length >0)) {return obj.parentStory.tables}
Учтите, если у вас таблица перетекает между фреймами, то её ширина устанавливается по ширине начального фрейма.

В теле скрипта забейте комментарием строку aTable = findTable(aSel); и после неё напишите:
allTables = findTable(aSel);
for (var i = 0; i<allTables.length; i++){


Закройте цикл фигурной скобкой перед строкой resetUnits();

Должно получиться что-то вроде:

setUnits();
aDoc = app.activeDocument;
aSel = app.selection[0];
//aTable = findTable(aSel);
allTables = findTable(aSel);
for (var i = 0; i<allTables.length; i++){
aTable = allTables;
tWidth = getTargetWidth(aTable);
n = aTable.columnCount;
w = aTable.width;
for (j = n-1; j >= 0; j--) {
aTable.columns[j].width = aTable.columns[j].width * (tWidth)/w;
}
}
resetUnits();
 
Ответ: сжимание таблиц по горизонтали

Ха-ха. Если выделяем конкретную таблицу или ячейку, функция findTable() возвращает объект типа Table, у которого нет свойства length.

Поэтому, продолжаем чинить скрипт:

setUnits();
aDoc = app.activeDocument;
aSel = app.selection[0];
//aTable = findTable(aSel);
allTables = findTable(aSel);
if (!(allTables instanceof Table)){
for (var i = 0; i<allTables.length; i++){
var aTable = allTables;
main(aTable);
}
} else {main(allTables)}
resetUnits();

function main(t){
tWidth = getTargetWidth(t);
n = t.columnCount;
w = t.width;
for (j = n-1; j >= 0; j--) {
t.columns[j].width = t.columns[j].width * (tWidth)/w;
}
}
 
Ответ: сжимание таблиц по горизонтали

спасибо вам БОЛЬШОЕ!!! После 10 минутных проб у меня получилось. Я подозревал. что где-то там надо копать. Сколько же времения я еще съэкономлю!!!!!!!
 
Ответ: сжимание таблиц по горизонтали

финальный скрипт прикрепите ;)
 
Ответ: сжимание таблиц по горизонтали

Держите
 

Вложения

Ответ: сжимание таблиц по горизонтали

kaatm

Спасибо Вам большое. Сколько часов я потратил на такие таблицы - не счесть.
 
Ответ: сжимание таблиц по горизонтали

kaatm сказал(а):
Я, конечно, извиняюсь, но у меня обрабатывается только одна таблица.
 
Ответ: сжимание таблиц по горизонтали

Balevi сказал(а):
Я, конечно, извиняюсь, но у меня обрабатывается только одна таблица.
А вы уверены, что в story их несколько?
 
Статус
Закрыто для дальнейших ответов.