Помощь - Поиск - Пользователи - Календарь
Полная версия: Плавающие плашки в InDesign (названия каналов ТВ)
ProDTP > Графика и препресс > Скриптинг
RedbeR
Не нашел в форуме ничего похожего.. вот и завел эту тему
Сразу оговорюсь - задача не тривиальная.

- Для простоты возьмем расписание TV - 20 каналов (вместо каналов может быть что-угодно).
- Существуют цветные плашки (в AI, фигурные, сложные, с несколькими цветными  элементами, без назвния - текст названия пишем в InD).
- Существует программа всех каналов (ТЕКСТ - 4-5-6- колонок на страницу ).ширина страницы и соотв. ширина колонок, а также их количество может меняться!!!
соответственно должна меняется и ширина плашки!

Что нужно:
IPB Image

1. Сама плашка нарисована в Illustrator CS CE - очень длинная (с запасом) - НУЖНО: при изменении ширины колонки - она должна просто обрезаться по правому краю.
2. Надпись КЛУБЫ - лежит поверх плашки и двигается вместе с ней. Она выравнивается по центру КОЛОНКИ и напечатана в InDesign'e.

Вот собственно, что мне и нужно ;-)
Не пугает задачка? :-O


Если делать плашки табличкой
1. Нельзя использовать цв. фигурные AI плашки - можно только задать цвет ячейки таблицы и цвет текста в ней.
2. Ширина плашки (таблички) не меняется автоматически - только ручками sad.gif - что очень геморойно (опции растягивания таблички по ширине колонки не нашел).
3. Максимум, что можно сделать - вставить в ячейку inline объект AI - т.е. лого -
и опять же сверху вставленного inline объекта - нельзя напечатать связянную с плашкой надпись - только справа или слева от объекта.
IPB Image


С уважением,
RedbeR
RedbeR
Почему-то хостинг hotbox.ru не дает возможность показать картинки.
Вот ссылки на них:
1:
http://www.redber.hotbox.ru/indesign/good_indd.gif
или
http://hosting.hotbox.ru/files/download.ph...n/good_indd.gif
2:
http://www.redber.hotbox.ru/indesign/bad_i..._indd_table.gif

хмм - или это у меня глюки :-?

ммм. видимо действительно глюки - все отображается... :-?

Это сообщение было отредактировано:  RedbeR, 08 Ноя, 2004 г. - 23:49
Ashhh
Два решения из разряда очевидных:
1. Сложную плашку вставляем во фрейм без обводки (маскируем). Далее регулируем ширину фрейма по желанию. Минус - каждый раз регулировать придется вручную. А вот можно ли сделать автоматическую привязку ширины фрейма к ширине колонки - не знаю.
2. Простая плашка под текстом по ширине колонки делается просто. Создаем стиль абзаца, а в нем в разделе Paragraf Rules включаем Rule Below, задаем подходящую ширину линии, цвет и - отрицательный Offset. Контролировать изменения удобнее с включенным Preveiw. Плашка готова. Можно ее ширину привязать как к колонке, так и к ширине текста, отрегулировав отступы.

Другие варианты мне, пожалуй, неизвестны. Может кто-то еще что подскажет?
OlegButrin
Задача элементарно решается скриптом.
Но пока не пойму, как именно сделана
"2. Надпись КЛУБЫ - лежит поверх плашки и двигается вместе с ней. Она выравнивается по центру КОЛОНКИ и напечатана в InDesign'e.", ничем помочь не могу.
steve
- сделать инлайн группу

- инлайн ai (keep with next), за ним абзац с лидингом 1 и нужным baseline shift.
(скриптом надо будет менять ширину гр. фрейма и baseline shift (зависит от высоты гр. фрейма)
OlegButrin
Студно туково...
То есть, якорем тут служит как бы сам текст, по которому потом выравнивается плашка?
steve
OlegButrin
Студно туково...
Это как?  :-)

У плашки, т.е фрейма, надо только менять ширину (1. Сама плашка нарисована в Illustrator CS CE - очень длинная (с запасом) - НУЖНО: при изменении ширины колонки - она должна просто обрезаться по правому краю.). Якорь - сама "плашка" (paragraph style), а текст как довесок на привязи (тоже со своим пар. стилем).

Кстати, можно воспользоваться TFManager.js - очень хороший скрипт :-)
только надо чуток модифицировать его:

if (myPlacedObject.parent.contentType == ContentType.graphicType) {
myObject = myPlacedObject.parent;
myObject.visibleBounds = [0,0,myObject.visibleBounds[2],50]; //<---add this line

50 - ширина колонки в пунктах.
а то что дальше про скейлы убрать.

Это сообщение было отредактировано:  steve, 02 Мар, 2005 г. - 16:36
GeenGreen
Не совсем корректный способ, но может прокатит: определить минимальную длину плашки и сделать так, что на этой отметке она уходила в гладкий цвет. Фон ячейки сделать этим цветом.
Метод обычный для web-дизайна.
arhip
Цитата
>> OlegButrin
Студно туково...<<
Это как?  :-)

[offtop]
Аркадий и Борис Стругацкие \"Трудно быть богом\"
Цитата
Дон Рэба сидел в напряженной позе,  положив  локти на стол и сплетя пальцы...  Почтенный Вага сидел на софе спиной к Румате...
- Выстребаны обстряхнутся, - говорил он, - и дутой чернушенькой объятно хлюпнут по маргазам. Это уже двадцать длинных хохарей. Марко было бы тукнуть по пестрякам. Да хохари облыго ружуют. На том и покалим сростень. Это наш примар...
Дон Рэба пощупал бритый подбородок.
- Студно туково, - задумчиво сказал он.
Вага пожал плечами.
- Таков наш примар. С нами габузиться для вашего оглода не сростно. По габарям?
- По габарям, - решительно сказал министр охраны короны.
- И пей круг, - произнес Вага, поднимаясь.

[/offtop]
OlegButrin
Код


function getParentWidth (myObject) {

    var myResult = null;

    if (myObject.parent.parentTextFrame.constructor.name == \"TextFrame\") {

 var myTextFrame = myObject.parent.parentTextFrame;

 var myPreferences = myTextFrame.textFramePreferences;

 if (myPreferences.useFixedColumnWidth) {

     myResult = myPreferences.textColumnFixedWidth;

 } else {

     var myWidth = myTextFrame.geometricBounds[3] - myTextFrame.geometricBounds[1];

     myResult = (myWidth - ((myPreferences.textColumnCount - 1) * myPreferences.textColumnGutter)) / myPreferences.textColumnCount;

 }

    }

    return myResult;

}



with (app) {

    if (documents.length < 1) {

 alert(\"Нет открытых документов!\");

 exit();

    }

    try {

 var myStory = selection[0].parentStory;

 var myStoryId = myStory.id;

    } catch (error) {

 alert(\"Выберите один текстовый объект!\");

 exit();

    }

    var myInlines = myStory.rectangles;

    for (myCounter = 0; myCounter < myInlines.length; myCounter++) {

 var myInline = myInlines[myCounter];

 var myNewWidth = getParentWidth(myInline);

 if (myNewWidth != null) {

     var myBounds = myInline.visibleBounds;

     myBounds[3] = myBounds[1] + myNewWidth;

     myInline.visibleBounds = myBounds;

 }

    }

    alert(\"Все готово!\");

}



Сохранить как fitInlines.js в папку скриптов - и пользоваться.
Только запомнить следует, что если плашка от середины колонки начинается - ее вынесет за пределы.
steve
А что будет если кроме плашек будет еще что-то плавать с шириной меньше чем ширина (колонки/фрейма)?  :-)
OlegButrin
А попробуй догадаться  :-D

Есть голова - можно заточить скрипт так, что он будет проверять имя (или) тип вставленной графики и обрабатывать только указанный. Но это уже совсем другая история - я общий метод показал.
arhip
Олег, а вот этот скрипт не годится? Words To Inlines 2. Я, чесговоря, не разбирался, искал другое и наткнулся.
OlegButrin
Нет, не годится - он не выполняет основной функции - не изменяет размеры фрейма плашки. А этот изменяет.
Хотя можно делать связкой - сначала расставить плашки при помощи скрипта Words To Inlines 2.0, а потом при помощи этого скрипта - их тянуть.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2012 Invision Power Services, Inc.

Реклама

   Rambler's Top100    Яндекс цитирования