Как сверстать? (опять перетекание таблиц?)

  • Автор темы Автор темы mne444
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Ответ: Как сверстать? (опять перетекание таблиц?)

iv-mi

Я тоже везде где только можно избавляюсь от больших таблиц, но в данном случае будет еще больший гемморой.

============================================================

Вчера скрипт писал дома, там только CS4. Сегодня на работе на одном компе обнаружил что каким-то чудом сохранился установленный CS2. На скорую руку адаптировал под него.
Для CS3 я думаю больше подойдет первая версия. Там только строку с версией поменять на ("InDesign.Application.CS3"), либо .CS4 вообще убрать.
 

Вложения

Ответ: Как сверстать? (опять перетекание таблиц?)

2 Fog_patch:

А как будет выглядеть скрипт, который делал бы то же самое применимо к конкретной ячейке/строке (при необходимости)?
Ведь далеко не все ячейки (как правило) разбивать/переносить приходится.
 
Ответ: Как сверстать? (опять перетекание таблиц?)

Всмысле просто разрезать ячейку по абзацам без того чтоб она перенеслась? Да проще простого. У вас какой индюк?
 
Ответ: Как сверстать? (опять перетекание таблиц?)

CS3.
 
Ответ: Как сверстать? (опять перетекание таблиц?)

iv-mi сказал(а):
Картинка screenshot 2 легко реализуется, если отказаться от табличной верстки. Это обсуждалось три года назад:
http://forum.rudtp.ru/showthread.php?t=20071
Скрипты -- интересно и познавательно, но чуть попозже.
С имеющимся у Вас уровнем работы с программой они пока не помогут.
Тему по ссылке прочитал. Не поможет ИМХО, или я чего-то не знаю. Посмотрите восьмой пост или попробуйте вы сделать правильное форматирование для фрагмента, который я присоединил. С меня бутылка. ;)
Дело в том, что символ Indent to Here не умеет сделать текст слева отформатированным по заданной правой границе. Вообще таких средств я знаю 3: таблица, колонки, Anchored или обычный текст фрейм. Что-то еще?

2Fog_patch: Спасибо за скрипт! Тот, что мне попадался я не нашел, теперь адаптирую этот. Разобью все ячейки поабзацно во всем тексте и пойдет... то же мне предлагали и вы, только я формулировку "Split поабзацный" с перепугу не понял.
не в тему: Попытался написать скрипт для "авто-justify" таблиц по высоте фрейма, но сходу не получилось. Всвязи с - вопрос: можно ли получить реальную высоту группы ячеек? Cells.height выдает высоту какой-то одной из выделенных... upd: наверное перечислить все ячейки и сложить высоты?
 

Вложения

Ответ: Как сверстать? (опять перетекание таблиц?)

Art®

Вот этот будет резать конкретную ячейку. Ее можно либо выбрать, либо просто поставить туда курсор.
 

Вложения

Ответ: Как сверстать? (опять перетекание таблиц?)

Спасибо, сейчас опробую. :)
 
Ответ: Как сверстать? (опять перетекание таблиц?)

mne444 сказал(а):
не в тему: Попытался написать скрипт для "авто-justify" таблиц по высоте фрейма, но сходу не получилось. Всвязи с - вопрос: можно ли получить реальную высоту группы ячеек? Cells.height выдает высоту какой-то одной из выделенных... upd: наверное перечислить все ячейки и сложить высоты?

Я не пишу для индюка и его объекты и методы совсем не знаю. Поэтому когда я всё-таки пишу я выбираю не самый лучший или оптимальный способ, а первый попавшийся на глаза. '))' Следовательно спрашивать у меня что лучше, не стОит.
По вашему вопросу я бы сделал так как вы сами предложили.
 
Ответ: Как сверстать? (опять перетекание таблиц?)

Спасибо, работает. =)
Для разбиения других ячеек в строке можно использовать Unmegre Cells.
 
Ответ: Как сверстать? (опять перетекание таблиц?)

Art® сказал(а):
Спасибо, работает. =)

пожалуйста


Art® сказал(а):
Для разбиения других ячеек в строке можно использовать Unmegre Cells.

И разносить абзацы вручную? Это не наш метод '))'

Я вот подумал. Если уж начал может сделать скрипт с настройками? Причем настройки отдельным скриптом в файл (чтоб не надоедал при каждом запуске), а в настройках на выбор:
- первые колонки не трогаем, бьём только последнюю
- в выделенном, либо во всей таблице (если конечно такое вообще нужно)
- сохраняя общую высоту полученных ячеек как высоту бывшей разбитой ячейки.
- убирая промежутки (top/bottom cell inset) между полученными ячейками
- убирая обводку между полученными ячейками
- бьем построчно!! (')))))' для фанатов экстремальной верстки)

Нужно такое? Или ну его нафиг?
 
Ответ: Как сверстать? (опять перетекание таблиц?)

'))'
Почему бы нет? Если не лень, конечно. Может и пригодится кому.
 
Ответ: Как сверстать? (опять перетекание таблиц?)

Fog_patch сказал(а):
Нужно такое? Или ну его нафиг?
Нужно-нужно! :)
А еще бы опцию повторения содержимого левой колонки. А то при переходе на другую стр. левая пустая колонка странно смотрится рядом с забитой текстом правой.
 
Ответ: Как сверстать? (опять перетекание таблиц?)

Mic256 сказал(а):
А еще бы опцию повторения содержимого левой колонки.
Как мёд, так и ложкой '))'
 
Ответ: Как сверстать? (опять перетекание таблиц?)

Пока Fog_patch пишет универсальный скрипт, я переделал его SplitSelectedCellByParagraph.vbs, сделав его намного умнее.
Теперь он умеет разбивать строку ЛЮБОЙ таблицы, причем не режет строку, когда в большой ячейке после удаления последнего параграфа, текста останется меньше, чем в других.
Не сделал при этом учета реальной высоты текста, потому что не знаю как. :) Пока не узнаю, будет считаться только количество строк, и не будут учитываться возможные отступы текста сверху-снизу и прочий хитрый формат. Подскажите, если знаете.
 

Вложения

Ответ: Как сверстать? (опять перетекание таблиц?)

Немного подправил
 

Вложения

Ответ: Как сверстать? (опять перетекание таблиц?)

mne444 сказал(а):
Пока Fog_patch пишет универсальный скрипт...

Нет, Fog_patch не пишет пока что ничего. Он героически борется с ленью, и борьба эта неравная 'Fihtov2' '))'

mne444 сказал(а):
я переделал его SplitSelectedCellByParagraph.vbs, сделав его намного умнее.

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

mne444 сказал(а):
Не сделал при этом учета реальной высоты текста, потому что не знаю как. Пока не узнаю, будет считаться только количество строк, и не будут учитываться возможные отступы текста сверху-снизу и прочий хитрый формат. Подскажите, если знаете.

Это кстати отличная идея! Я знаю как, но мне ломы. Давайте скрипт будете писать Вы. '))' А я помогу.

Реальная высота текста по последней строке? Легко:
Lines.LastItem.Baseline
 
Ответ: Как сверстать? (опять перетекание таблиц?)

Кстати, mne444, потестировал вашу версию и что-то мне не совсем нравится самостоятельность скрипта. Т.е. если в колонках примерно одинаковое наполнение текстом, то вообще ничего не происходит? А если всё-таки нужно резануть? Короче тут по-любому требуются доп.настройки.
 
Ответ: Как сверстать? (опять перетекание таблиц?)

Fog_patch сказал(а):
Кстати, mne444, потестировал вашу версию и что-то мне не совсем нравится самостоятельность скрипта. Т.е. если в колонках примерно одинаковое наполнение текстом, то вообще ничего не происходит? А если всё-таки нужно резануть? Короче тут по-любому требуются доп.настройки.
Мне не так лениво, но сейчас мало времени. Буду заниматься потихоньку, а когда (и если) сделаю - выложу. :)
Следующий вопрос не по теме: Как в бейсике сделать свой custom-ный диалог? И можно ли вообще?

+ чтобы скрипт порезал все параграфы, достаточно закоментить строку №32
If mCell1.texts(1).Lines.Count <= LinesAfterMove Then
ну и закрывающий End If конечно
 
Ответ: Как сверстать? (опять перетекание таблиц?)

На Vbscript к сожалению диалога человеческим способом не создать. Только стандартные MsgBox (да, нет), InputBox, OpenFile.
Но в принципе я не вижу проблемы, т.к. есть VB, а в нем уже окошко любой сложности и визуально.
А можно обойтись простейшим, например просто текстовой файл с настройками типа:
- Режем построчно: (Да, Нет) ненужное удалить.
- Учитываем заполнение соседних ячеек: (Да, Нет) ненужное удалить.
 
Статус
Закрыто для дальнейших ответов.