Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?

Статус
Закрыто для дальнейших ответов.

Mic256

15 лет на форуме
Сообщения
1 626
Реакции
564
Ответ: Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?

:) Помогает?
 

A**Z

Участник
Сообщения
527
Реакции
627
Ответ: Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?

greedy
Чисто ради спортинтереса - как данный дизайн будет выглядеть, если будут попадаться, например, такие товарищи: Ян Яныч и Газимагомед Газимагомедыч?

Не по теме:
Это я еще без фамилий спрашиваю!
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Ответ: Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?

поставил еще один фрейм по которому все это чудо (ФИО и полоска) равняется...

сгруппировал и поставил равнение посредине еще одного фрейма.

greedy, чего-то не ясно, вы воспользовались советом Mic256 в 17-м посте?
И всё же, возвращаясь к самому началу, вопрос с оверсетами решен?
 

greedy

Участник
Топикстартер
Сообщения
29
Реакции
0
Ответ: Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?

Вопрос вроде решен )

A**Z, Ян Яныч и Газимагомед Газимагомедыч ? Вот про таких то я и говорил что все равно что-то прийдется править руками уже после сборки.
 

wit

Участник
Сообщения
24
Реакции
0
Ответ: Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?

Думается, что после помещения текста во фреймы, текст нужно преобразовать в кривые и полученные объекты выравнивать как душе угодно.
 

Любимцев

15 лет на форуме
Сообщения
4 199
Реакции
2 055
Ответ: Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?

wit, как-то странно, Вам, думается :)
 

andrejK

R.I.P.
Сообщения
10 300
Реакции
5 218
Ответ: Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?


Не по теме:
эт когда вовсе не думается, а просто ляпается
 

wit

Участник
Сообщения
24
Реакции
0
Ответ: Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?

wit, как-то странно, Вам, думается :)

В чём же странность? Данный подход позволяет в точности решить поставленную задачу: выровнять одну надпись относительно другой (а не относительно границ виртуальных фреймов).
Тот факт, что текст превращается в нередактируемые надписи, в данном случае, непринципиально не важен.
 

Любимцев

15 лет на форуме
Сообщения
4 199
Реакции
2 055
Ответ: Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?

Даже если ваш метод верный (а он не верный, т.к. выравнивание будет происходить точно по геометрическим точкам, а не оптически (Например, при левой выключке, буква А будет несколко смещена в право, относительно, например, П), кроме того, равнение "не относительно границ виртуальных фреймов", а по кернинговым площадкам) то придется, сотни визиток преобразовать в кривые, разгруппировать, снова выровнять... а речь идет об автоматизации («и это называется — "электронная почта"!»© — фраза из 96 года, когда не могли настроить модем, и таскали дискету провайдеру. Реальный случай)

» в данном случае, непринципиально не важен
ну ну... :)
 

Mic256

15 лет на форуме
Сообщения
1 626
Реакции
564
Ответ: Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?

wit, попробуйте текстовый фрейм с оверсетом преобразовать в кривые. (Прим.: если текст полностью попадает во фрейм
выровнять одну надпись относительно другой
можно и не извращаясь). :)
 

wit

Участник
Сообщения
24
Реакции
0
Ответ: Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?

Даже если ваш метод верный (а он не верный, т.к. выравнивание будет происходить точно по геометрическим точкам, а не оптически (Например, при левой выключке, буква А будет несколко смещена в право, относительно, например, П),
Понимаю Вас, как перфекционист перфекциониста. ;) Однако практика показывает, что конечному заказчику такие нюансы малоинтересны.

то придется, сотни визиток преобразовать в кривые, разгруппировать, снова выровнять... а речь идет об автоматизации
Да? Не знал, и ради интереса реализовал идею минут за 10 (правда, без Data Merge).

Вот алгоритм:
1. Создаем файл (id сs4) размером с визитку, галку facing pages убираем.
2. Идем на мастер-пейдж и формируем макет визитки. Причем на месте ИО и Ф располагаем два пустых текстовых фрейма (максимально нужного размера) и связываем их.
3. Берем текстовый файл с именами вида:

Имя1 Отчество1
Фамилия1
Имя2 Отчество2
Фамилия2

И через буфер копируем на первую страницу макета.
4. Текст во фрейме приводим к нужному виду и центруем.
5. Уменьшаем фрейм до размера фрейма "ИО" и помещаем его в нужное место.
6. Кликаем на красный плюс и, потом, с шифтом - на фрейм "Ф".
Теперь у нас N-визиток, каждая на отдельной странице.
7. ctrl-A и перевести в кривые. Действие коснется всех страниц.

Далее для выравнивания, возможно, на помощь мог бы прийти скрипт, но т.к. писать их не умею, то придумал такой ход:
8. Определил горячую клавишу для horizontal distribute spacing (напр. ctrl+shift+alt+Q)
9. Теперь нужно пройти по всем страницам, выполняя два действия: выделить все (собственно - 2 векторных объекта) и выровнять. Т.к. страниц много, то я использовал программу (xstarter), имитирующую нажатие клавиш. В нее забил всего три шага: ctrl+A, ctrl+shift+alt+Q, shift+PgDn и указал повтор N-раз.

Собственно всё. Если еще нужно смонтировать на листе, то, например, пишем пдф, режем постранично и генерим через Data Merge.

p.s. Описывал дольше чем делал :).
 

Любимцев

15 лет на форуме
Сообщения
4 199
Реакции
2 055
Ответ: Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?

конечному заказчику такие нюансы малоинтересны.
При чем тут заказчик?

4. Текст во фрейме приводим к нужному виду и центруем.
Мне казалось, что речь идет о выключке в лево/право...

Определил горячую клавишу для horizontal distribute spacing
А при чем тут distribute? :)

7. ctrl-A и перевести в кривые. Результат коснется всех страниц…
9. Теперь нужно пройти по всем страницам, собственно - 2 векторных объекта)
Только что результат "ctrl-A" касалось всех страниц, и вдруг... только объектов одной страницы :)
 

wit

Участник
Сообщения
24
Реакции
0
Ответ: Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?

Только что результат "ctrl-A" касалось всех страниц, и вдруг... только объектов одной страницы :)

Простите, я Вас не понял. Вам, видно, просто поболтать хочется, а я тут конкретное решение предлагаю. :(
Про выключку и distribute - читайте внимательнее автора топика, вникнете в задачу и думайте.
 

Любимцев

15 лет на форуме
Сообщения
4 199
Реакции
2 055
Ответ: Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?

А Вы попробуйте проделать, то, что описали, и поймете :)
Ок! Предположим, что все, велосипед изобретен, Ф.И.О. расставлены (и даже текстовых копий, под кривыми, не осталось). "А дальше?"© адреса, пароли, явки, должности?
И, самое главное, зачем текст-то кривить?
режем постранично и генерим через Data Merge.
Что мешало, изначально, Data Merge все сделать?
 

wit

Участник
Сообщения
24
Реакции
0
Ответ: Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?

А Вы попробуйте проделать, то, что описали, и поймете :)
Я говорил, что сначала сделал, а потом описал.

И, самое главное, зачем текст-то кривить?
Мы выравниваем вторую надпись относительно правого края первой. Причем первая надпись центруется относительно некоторой линии и имеет переменную длину, т.е в разных визитках
горизонтальные координаты правых краёв не совпадают. Если надпись - это текст, отцентрированный внутри фрейма, то мы вообще не имеем понятия о координатах крайних точек надписи и поэтому выравнивать что-либо относительно их не можем. Но преобразование текста в кривые дает нам такую возможность. Неужели не очевидно?

и даже текстовых копий, под кривыми, не осталось
При описанном алгоритме у меня не остается.

"А дальше?"© адреса, пароли, явки, должности?
Не дальше, а раньше. Т.е. все необходимые фреймы нужно указать на мастер-пейдже. Соответственно и текстовый файл будет иным.
Конечно, с таким количестве надписей, при выравнивании в алгоритме шаг "ctrl+A" нужно заменить на "нажать левую кнопку мышки в (х1;у1) и отпустить в (х2;у2)", т.е. выделить только необходимые объекты.

Приношу извинения: я сам невнимательно вник в задачу. Отсюда и ошибочное использование distribute horizontal spacing. Но на принцип решения эта ошибка не влияет. Указываем "выравнивание справа" и всё работает. (ну еще небольшие манипуляции ради указания базового объекта).

Что мешало, изначально, Data Merge все сделать?
Предложенные решения были основаны на идее пересмотра дизайна.
Я показал, что можно решить задачу и буквально (не меняя условий) и за приемлемое время (минут 15-30.)
 

Любимцев

15 лет на форуме
Сообщения
4 199
Реакции
2 055
Ответ: Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?

ИМХО, Вы сейчас просто пытаетесь отстоять свой способ, любым способом (каламбур-с :)
текст, отцентрированный внутри фрейма, то мы вообще не имеем понятия о координатах крайних точек надписи и поэтому выравнивать что-либо относительно их не можем
Вот почему?
Тем более, что Onger предложил вообще удобный способ
 

wit

Участник
Сообщения
24
Реакции
0
Ответ: Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?

ИМХО, Вы сейчас просто пытаетесь отстоять свой способ, любым способом (каламбур-с :)
Возраст у меня уже не тот, чтобы из принципа чего-то отстаивать или доказывать.
Просто встречаются иногда недотёпы, которым приходится кое-что разжевывать. Хуже - когда встречаются амбициозные недотёпы, тогда разговор заходит в тупик.

Не понимаете и не принимаете мой метод? Оставьте его в покое и займитесь чем-нибудь полезным.
 

A**Z

Участник
Сообщения
527
Реакции
627
Ответ: Как можно задать автоматическую подгонку фрэйма под длинну тектовой строки?

При наличии ID CS<5, дармового плюха Typefi AutoFit и "программу (xstarter), имитирующую нажатие клавиш. В нее забил всего три шага: ctrl+A, ctrl+shift+alt+Q, shift+PgDn и указал повтор N-раз", но только с другим вторым шагом (ctrl+alt+C), исходная задача решается почти полностью автоматом.
 
Статус
Закрыто для дальнейших ответов.