Как применить стиль абзацак тексту ячейки?

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

SilkWorm

Участник
Топикстартер
Сообщения
5
Реакции
0
День добрый!

Вводная - есть таблица. По неким своим критериям я пробегаюсь по ней, объединяя ячейки, после чего применяю готовые стили и к ячейке, и к тексту в ней.

Вот что имею сейчас:
Set cell1 = MyRow.Cells(1)
Set cell2 = MyRow.Cells(11)
cell1.Merge cell2
cell1.AppliedCellStyle = "Shapka"
cell1.AppliedParagraphStyle = "Shapka" (эта строчка не работает)

Бяда, насколько мыслю, в том, что я в последней строке ссылаюсь на ячейку, а не на текст в ней и метод AppliedParagraphStyle неприменим. Как быть?

Вдогонку следующий вопрос. После применения стиля к абзацу, будет производиться поиск по тексту, после чего на часть его будет применяться иной character style. А, синтаксически, как?
 
Ответ: Как применить стиль абзацак тексту ячейки?

myCell.texts[0].appliedParagraphStyle
 
Ответ: Как применить стиль абзацак тексту ячейки?

Спасибо.
Решилось так:

Set myPara = cell1.Paragraphs(1)
myPara.AppliedParagraphStyle = "Shapka"

Уфф. Тяжело быть бараном.
Начал писать эту ботву дальше. К тексту ячеки присобачил графический фрейм, вставил в него EPSу, откадрировал его (фрейм) по заданному размеру и... не въезжаю как промаштабировать содержимое? Нужен програмный аналог сочетания CTRL+ALT+SHIFT+E. Код тут нафиг не нужен, но приведу его на всякий случай:

Set lala = myPara.Rectangles.Add
lala.Place "C:\1\Watches.EPS"
lala.FillColor = "None"
lala.StrokeColor = "None"
lala.GeometricBounds = Array("0mm", "0mm", "3mm", "5mm")
 
Ответ: Как применить стиль абзацак тексту ячейки?

SilkWorm сказал(а):
Нужен програмный аналог сочетания CTRL+ALT+SHIFT+E.

PHP:
lala.fit (FitOptions);
Соответственно FitOptions:
CENTER_CONTENT Centers content in the frame; preserves the frame size as well as content size and proportions. Note: If the content is larger than the frame, content around the edges is obscured. readonly number
CONTENT_TO_FRAME Resizes content to fit the frame. Note: Content that is a different size than the frame appears stretched or squeezed. readonly number
FILL_PROPORTIONALLY Resizes content to fill the frame while perserving the proportions of the content. If the content and frame have different proportions, some of the content is obscured by the bounding box of the frame. readonly number
FRAME_TO_CONTENT Resizes the frame so it fits the content. readonly number
PROPORTIONALLY Resizes content to fit the frame while preserving content proportions. If the content and frame have different proportions, some empty space appears in the frame. readonly number
 
Ответ: Как применить стиль абзацак тексту ячейки?

Огромное человеческое спасибо, сработало.

Как это ни удивительно, натолкнулся на очередные грабли.:)
1. На полях верстки валяется объект, нарисованный средствами самого inDesign'а, метка label ему присвоена. Как мне его внедрить в текст? Насколько понял из изучения материалов форума это возможно, но синтаксически как? InDesign Scripting Reference в этом плане не помогает.
2. Для абзаца применим такой метод как ClearOverride, есть ли что-то подобное для ячейки? Пишу на VB для CS3.
 
Ответ: Как применить стиль абзацак тексту ячейки?

SilkWorm сказал(а):
1. На полях верстки валяется объект, нарисованный средствами самого inDesign'а, метка label ему присвоена. Как мне его внедрить в текст? Насколько понял из изучения материалов форума это возможно, но синтаксически как? InDesign Scripting Reference в этом плане не помогает.
Помогает. Но не всем )))
Копать надо в сторону Cut - Paste.
PHP:
app.select(myObject);
app.cut();
app.select(myInsertPoint);
app.paste();
 
Ответ: Как применить стиль абзацак тексту ячейки?

Боюсь не все так просто.

Вставить его удалось. Спасибо. Ноесть некий нюанс... в InDesign'е есть возможность выделения внедренного в абзац графического объекта как часть текста (инструментом Текст) и, соответственно, копировать его как текст. Именно это мне и нужно програмно реализовать.

Что есть сейчас: текстовый фрейм с меткой (zagogul), в нем искомый графический объект и таблица, в ячейку которой, он (объект) должен встать.

Пока код такой:
-- выбор объекта --
Set zagog = kal.PageItems("zagogul").Paragraphs.FirstItem.Characters.AnyItem
-- вставка --
myPara.InsertionPoints.Item(1).Contents = zagog.Contents

... и ничего не происходит. Фигня, как мыслю, в том, что я выбираю во фрейме не объект, а текст (которого там нет). То есть, вместо
Set zagog = kal.PageItems("zagogul").Paragraphs.FirstItem.Characters.AnyItem
надо написать что-то вроде
Set zagog = kal.PageItems("zagogul").Objects.AnyObject
... но это не работает. Вот я и в затыке :)
 

Вложения

Ответ: Как применить стиль абзацак тексту ячейки?

SilkWorm сказал(а):
Боюсь не все так просто.
Видимо действительно все очень сложно :)
SilkWorm сказал(а):
-- выбор объекта --
Set zagog = kal.PageItems("zagogul").Paragraphs.FirstItem.Characters.AnyItem
Судя по коду вы пытаетесь выбрать любой символ первого параграфа (этакая "русская рулетка" '8|' )
Мне кажется лучше было бы найти первый прямоугольник в текстовом фрейме. Примерно так:
PHP:
Set zagog = kal.PageItems("zagogul").Rectangles.Item(1)
 
Ответ: Как применить стиль абзацак тексту ячейки?

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