Плагин/скрипт виртуального "разрыва" ячеек при их перетекании между страниц.

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

George

I wish I was a monster you think I am
Топикстартер
15 лет на форуме
Сообщения
17 528
Реакции
7 928
Кто-нибудь знает о его существовании?
Вещь действительно нужная при вёрстке длинных таблиц, а без неё полный геморрой.

P.S. Интересует InDesign (word и др. не предлагать).

Обсуждение проблемы привело к появлению рабочего скрипта. Присоединяйтесь к обсуждению добавления фич к нему и тестированию последних вариантов. Скриптописатели в теме приветствуются, однозначно!
 
Последнее редактирование:
Ответ: Существует ли плагин виртуального "разрыва" ячеек при их перетекании между страниц?

Вопрос модератору ветки:
Макс!
Реально ли параграфбордер научить "многоколоночной вёрстке" таблиц? (пусть они будут виртуальные таблицы, но главное, чтобы это выглядело как таблица).
 
Ответ: Существует ли плагин виртуального "разрыва" ячеек при их перетекании между страниц?

Вопрос модератору ветки:
Макс!
Реально ли параграфбордер научить "многоколоночной вёрстке" таблиц? (пусть они будут виртуальные таблицы, но главное, чтобы это выглядело как таблица).

Очень сложно и нужна правка со стороны Adobe. Каждая строка таблицы - это один символ в "primary" Story. А символ не напечатаешь в двух фреймах.
По поводу ParagraphBorder - можно немного извратиться для определенных данных. См скриншот.
 

Вложения

  • Screen shot 2011-04-02 at 3.34.57 PM.png
    Screen shot 2011-04-02 at 3.34.57 PM.png
    87.2 КБ · Просм.: 1 617
  • Screen shot 2011-03-23 at 5.01.35 PM.png
    Screen shot 2011-03-23 at 5.01.35 PM.png
    73.9 КБ · Просм.: 1 619
Ответ: Существует ли плагин виртуального "разрыва" ячеек при их перетекании между страниц?

Некоторые выводы по поводу "виртуальной" таблицы средствами параграфбордер(спасибо Максиму за совет):
- делаем несколько одинаковых фреймов и распологаем рядом(имитация колонок);
- рамку(линии только сверху и снизу, левые и правые линии получаются автоматом при применении обводки к фреймам) создаем только у левого или только у правого фрейма(по желанию) и растягиваем на всю ширину виртуальной таблицы;

Имеем две проблемы:
- при несовмещении абзацев - текст у одной из колонок будет за пределами линий. То есть нужно постоянно следить за совмещением строк(что вообще нонсенс для таблиц - там же это одна строка). В общем нужен какой-то функционал определения "строк виртуальной таблицы";
- при использовании нескольких стилей в одной рамке, приходится создавать кучу новых стилей... (этот вопрос Максим собирается решить в ближайших релизах плагина).
 
Ответ: Существует ли плагин виртуального "разрыва" ячеек при их перетекании между страниц?

Ещё проблемы:
- так как это не таблица, получается, что сложно взять и поменять одним махом ширину колонок, ибо это фреймы, и их прийдётся двигать на каждой странице. То есть надо изначально иметь окончательный вариант макета для вёрстки;
- вытекает из предыдущего - можно спокойно забыть об остальных атрибутах таблицы ID, кроме тех, что есть в параметрах параграфбордер(например есть заливка и обводка и т.д., но нет автоматического распределения, задания ширины и высоты колонки и т.д.).
 
Ответ: Существует ли плагин виртуального "разрыва" ячеек при их перетекании между страниц?

Очень сложно и нужна правка со стороны Adobe. Каждая строка таблицы - это один символ в "primary" Story. А символ не напечатаешь в двух фреймах.
А если как бы сдублировать/написать заново таблицы?(или это нарушение лицензирования, использование исходного когда для создания новых возможностей?)?
Короче как у Задорнова: Совсем нет?

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

Насколько я понял, готового (не говоря уже об идеальном) решения задачи на сегодня нет, и не остается ничего лучшего, чем резать строки таблиц.
Пока всё, что получилось у меня — брать "нелезущую" строку, разбивать скриптом по абзацам, после чего "горячей кнопкой", прописанной руками (сочетание угадаете?)) за 3-4 секунды сгруппировать так, как мне надо.
Скрипт здесь: http://forum.rudtp.ru/resources/razbit-jachejki-tablichnoj-stroki-po-abzacam.35/
До прогона скриптом:
splitRowBefore.jpg
После:
splitRowAfter.jpg
После ручной группировки (нужный результат):
splitRowAfterMerge.jpg
Одна там незадача — если в выбранной строке есть группированные ячейки, разбивка происходит, но с довольно непредсказуемым результатом. А универсальный алгоритм того, как предусмотреть все (!) возможные варианты группировки ячеек (и при этом с любым количеством абзацев), мозг почему-то выдавать пока отказывается :). Так что мысли принимаются.
 
Ответ: Существует ли плагин виртуального "разрыва" ячеек при их перетекании между страниц?

Ещё проблемы:
- так как это не таблица, получается, что сложно взять и поменять одним махом ширину колонок
Чисто теоретически, может в этом могут помочь направляющие вкупе с Layout Adjustment?..
Впрочем даже если ширина "колонок" изменится, - не изменится высота "строк".
 
Ответ: Существует ли плагин виртуального "разрыва" ячеек при их перетекании между страниц?

Eugenyus,

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

1. При разбивании ячейки, чтобы добавлялся невидимый глиф(тонкий пробел или что-то другое) к абзацам(читай - где-то на новой строке), которые были в одной строке, а стали "разбитыми" на несколько строк;
2. Далее скрипт определяет в конце фрейма строки с этим символом и объединяет ячейки поколоночно;
3. Возникает проблема того, что последняя строка может не дотягивать до конца текстового фрейма. Поэтому прошу добавить функционал скрипта Димы Сахарова отсюда: http://www.adobescripts.info/assets/files/TableFit.zip

Т.е. :
Перед стартом требуется установить курсор в текст любой ячейки в нужной строке.
И получается почти совсем зашибись - боремся автоматом с разбиением ячейки на одной странице.

P.P.S. Извиняюсь, ну не программист я. А возможно соответственно скрипт потом полученный(если сделаешь) - натравить на всю публикацию? То есть работаем и не обращаем, что строчки не разрываются, потом натравливаем скрипт и любуемся публикацией. (но тут еще надо продумать алгоритм объединения/разъединения, если невидимый символ будет и в строчке сверху и в строчке снизу одинаковый - то скрипт посчитает, что это одна и таже строчка и объединит их, то есть так думаю надо, чтобы скрипт вставлял несколько разных невидимых символов по очереди(каждой "полной" строке какой-то свой) - тогда не получится такой ситуации).

Заранее спасибо.
 
Ответ: Существует ли плагин виртуального "разрыва" ячеек при их перетекании между страниц?


Не по теме:
Впрочем даже если ширина "колонок" изменится, - не изменится высота "строк".
Изменится. Рамка есть свойство абзаца в параграфбордер. Ну да ладно, пока что про параграфбордер на время забудем. У Eugenyus, вариант интересный. Интересно доведёт ли он его до конца.



Переношу обсуждение в тему скриптинга.
 
Ответ: Существует ли плагин виртуального "разрыва" ячеек при их перетекании между страниц?

Eugenyus,
Да, кстати! Ты угадал своими скриншотами. Эта фича именно и нужна для технических работ на нескольких языках.
 
Ответ: Существует ли плагин виртуального "разрыва" ячеек при их перетекании между страниц?

Прошу добавить функционал к скрипту:
...
2. Далее скрипт определяет в конце фрейма строки с этим символом и объединяет ячейки поколоночно;

Не по теме:
Похоже, сумел обойтись без "этого" символа:).

Скрипт, выложенный ранее (см.пост №7), трогать не стал и не стану, т.к. считаю его основной задачей именно разбивку строки без последующей группировки, например, как здесь:
splitRow.jpg
Во вложенном же файле в этом сообщении — скрипт, который сначала разбивает строку по абзацам, после чего определяет, какие из них попали в один фрейм, и группирует их обратно, т.е. выполняет теперь уже весь алгоритм на скриншотах того же 7-го поста самостоятельно.

Поэтому прошу добавить функционал скрипта Димы Сахарова отсюда
Не добавил. :) Чуть позжее.

А возможно соответственно скрипт потом полученный(если сделаешь) - натравить на всю публикацию?
Не знаю. Основной вопрос, как я уже говорил, — учесть все возможные варианты сгруппированности ячеек. Слишком уж умный должен быть алгоритм, чтобы определять, где разгруппировать, где сделать "Split", и где потом назад сгруппировать (или это только мне кажется, что всё так сложно?). Второй вопрос — как программно определить, что часть строки с полосы №2 (условно) может поместиться на полосу №1? И это по всему документу. И т.д.

Это собственно вопросы ко всем, кто пишет скрипты. Действительно, хочется услышать мнения, реально ли такое в принципе (для начала).

PS. Скрипты, выложенные в этой теме — в архиве и в этом сообщении, — открыты для редактирования, так что если кто чего надумает, можно кромсать и выкладывать свои варианты.:)
 

Вложения

Ответ: Существует ли плагин виртуального "разрыва" ячеек при их перетекании между страниц?

Скрипт для пропорционального растягивания таблицы по всей высоте текстового блока.
(Заточен под личные задачи, поэтому возможны некоторые ограничения в работе.)
 

Вложения

Ответ: Существует ли плагин виртуального "разрыва" ячеек при их перетекании между страниц?

sakhar,
Имел в виду, что функционал твоего скрипта загнать в функционал "разрывающего" ячейки.
 
Ответ: Существует ли плагин виртуального "разрыва" ячеек при их перетекании между страниц?

Все не так просто! Пример, который привел Eugenyus - нетипичный.
Если в ячейках текст не будет разбит на абзацы?
Будет разбит, но не во всех?
Будет неравномерно разбит?
Если ячейки в строке сгруппированы?
и т.д.
Для нормального функционирования скрипта нужно много чего учесть.
Давно были мысли заняться этой темой, но руки не доходят... :(

Примерный алгоритм вижу таким:
1. Анализ пустого места под таблицей.
2. Если больше заданного, то разбивать построчно текст в каждой ячейке первой строки таблицы следующего фрейма.
3. Исходя из размера п. 1, с учетом вертикальных отступов в ячейках, группировка разбитых строк в предыдущем и следующем фреймах.
4. Проверка.
5. Растягивание моим скриптом.
 
Ответ: Существует ли плагин виртуального "разрыва" ячеек при их перетекании между страниц?

текст не будет разбит на абзацы?
Можно разбить по строкам. Там, если не ошибаюсь (сейчас времени нет смотреть), только в одном месте надо "paragraphs" заменить на "lines", но это мне надо будет уточнить.
 
Ответ: Существует ли плагин виртуального "разрыва" ячеек при их перетекании между страниц?

Можно разбить по строкам.
Это тоже не так просто, если есть переносы и текст выровнен по формату.
Сделать это все реально, но, повторюсь, нужно очень много чего учесть.
 
Ответ: Существует ли плагин виртуального "разрыва" ячеек при их перетекании между страниц?

Eugenyus,
Что-то он неправильно объединяет.
см. вложенный файл. После разбивки он почему-то обратно всё вместе собирает, а не так как надо.
 

Вложения

Ответ: Существует ли плагин виртуального "разрыва" ячеек при их перетекании между страниц?

Мда, двухколонник-то я и не учел:
определяет, какие из них попали в один фрейм, и группирует их обратно
Уф, пока тайм-аут до вечера, сейчас реально за комп засесть не смогу, а вечером поковыряю.
 
Ответ: Существует ли плагин виртуального "разрыва" ячеек при их перетекании между страниц?

Eugenyus,
Докладываю:
1. Действительно, если разные фреймы, то разбивает;
2. В том же моём примере - скрипт оставил слева 4 абзаца(и объединил), хотя спокойно "влазеет" пять.
 
Статус
Закрыто для дальнейших ответов.