Есть отсортированный список объявлений.Их нужно автоматически (использую COM API) сверстать в несколько колонок.
Трабл в том, что некоторые объявления могут быть в несколько колонок шириной. Но вставить их нужно
не нарушая сортировки. Если вставлять очередное такое объявление так, чтобы его левый край лежал в
нужной колонке, а правый - торчал вправо на нужное число колонок - то это еще ничего (правые колонки еще пустые)
. А вот если справа - край страницы, то надо перераспределить объявления так, чтобы левый край залез в одну или несколько
предыдущих колонок (которые уже заполнены). Если раздвинуть объявления в предыдущей колонке - то текущее сместится вниз.
Но и это еще не страшно. А вот если надо сделать объявление на три колонки, то точек разрыва будет две и при добавлении
второй первая сдвинется. И текущее объявление должно сдвинуться два раза. И, возможно, даже перелезть в следующую колонку.
А еще может получиться так, что в предыдущих колонках напротив данного объявления уже находится "широкое". И при сдвигании его
вниз должны происходить изменения во соответсвующих предыдущих колонках. Короче, ужас.
Так вот, может быть есть какие-то обкатанные алгоритмы для решения такой проблемы. Или, может быть, можно использовать какие-то
особые фичи InDesign (с ним я вполне знаком, но мастером себя не назову, я больше по части программирования).
Трабл в том, что некоторые объявления могут быть в несколько колонок шириной. Но вставить их нужно
не нарушая сортировки. Если вставлять очередное такое объявление так, чтобы его левый край лежал в
нужной колонке, а правый - торчал вправо на нужное число колонок - то это еще ничего (правые колонки еще пустые)
. А вот если справа - край страницы, то надо перераспределить объявления так, чтобы левый край залез в одну или несколько
предыдущих колонок (которые уже заполнены). Если раздвинуть объявления в предыдущей колонке - то текущее сместится вниз.
Но и это еще не страшно. А вот если надо сделать объявление на три колонки, то точек разрыва будет две и при добавлении
второй первая сдвинется. И текущее объявление должно сдвинуться два раза. И, возможно, даже перелезть в следующую колонку.
А еще может получиться так, что в предыдущих колонках напротив данного объявления уже находится "широкое". И при сдвигании его
вниз должны происходить изменения во соответсвующих предыдущих колонках. Короче, ужас.
Так вот, может быть есть какие-то обкатанные алгоритмы для решения такой проблемы. Или, может быть, можно использовать какие-то
особые фичи InDesign (с ним я вполне знаком, но мастером себя не назову, я больше по части программирования).