Фон заливки текста

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

Devust

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

Есть одно неудобство, которое не знаю, возможно ли обойти.

Например, если вставить текст, даже небольшую строчку: "АБВГ" и ВГ перевести в нижний (верхний) индекс, а дальше сделать однородную заливку всей строки, то между разными изменениями в стиле будет небольшой пробел в заливке.
Есть ли другой способ сделать заливку (не делая отдельной подложки), чтобы не было этих пробелов.
 

Devust

Участник
Топикстартер
Сообщения
14
Реакции
0
Да, и если можно это как-то сделать, то как это можно выполнить в теле макроса?
 

Jeine

Да здравствует разум! Да сгинет маразм!
15 лет на форуме
Сообщения
7 342
Реакции
6 328
Пробел в заливке – это как?
 

Devust

Участник
Топикстартер
Сообщения
14
Реакции
0
Ну в смысле не текстовый "пробел" )) а разрыв в заливке. Сейчас картинку с экрана сделаю.
 

Вложения

  • h2o.jpg
    h2o.jpg
    31.6 КБ · Просм.: 626
  • abvg.jpg
    abvg.jpg
    107.8 КБ · Просм.: 920

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Делать цвет фона символа подобным образом - очень дурной тон. И вы сами только что напоролись на одни из граблей, связанные с этим. Не пытайтесь упростить себе жизнь подобным образом - вы только прибавляете головняков себе и тем, кто будет в дальнейшем пользоваться созданным подобным образом макетом. Вы же макрос пишете - генерируйте под текстовым блоком отдельную подложку, таким образом вы и макет оптимизируете (одна подложка вместо миллиона разнокалиберных кусков) и себе задачу упростите.
 
  • Спасибо
Реакции: Devust и Jeine

Devust

Участник
Топикстартер
Сообщения
14
Реакции
0
Да не, в моей задаче это было бы проще.
Здесь нужно-то добавить строчку:
s.Text.Story.CharBackFill.ApplyUniformFill CreateRGBColor(255, 255, 255)
а если плашку рисовать, то уже в коде больше огорода городить. Высчитывать размер прямоугольничка, его координаты, выставить его параметры. Хотя нужно-то чтобы небольшая строчка была просто видна на разноцветной картинке.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
а если плашку рисовать, то уже в коде больше огорода городить.
Все это только на первый взгляд замечательно
На самом деле, во-первых, эта фишка сильно привязана к шрифту, шрифтовому движку и версии корела. То есть, не факт, что на любом шрифте и даже на любом компьютере при открытии этого макета фон будет ровным и слитным и уж точно не факт что он таковым останется при переводе текста в кривые и распечатке. Во-вторых, вы не думаете о конечных пользователях такого макета которые потом проблем отгребут и будут вспоминтаь вас добрыми русскими словами.
 
  • Спасибо
Реакции: Devust

Devust

Участник
Топикстартер
Сообщения
14
Реакции
0
)) Да не, у нас иная цель. Единственное что может быть страшно, это конвертация в pdf.
Наша работа в кореле заключается в том, чтобы разместить карту и на ней выставить всякого рода названия, значки. Карт много, названий много. В результате должны распечатать, создать pdf-файл и отдать всё заказчику.
Да, есть ещё один минус в заливке - это то, что она не ровная, если кегель разный. Но мы уже решили - унифицировали все надписи, чтоб не было разных значений в рамках одного типа надписей. Шрифт тоже - всё по госту: "Times new roman".
Но вот этот разрыв всё-таки немного портит картинку. Ладно, что-ж, буду плашечку придумывать.
Спасибо ))
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Я вам еще одну умную вещь скажу, о которой забыл сказать в предыдущем топике ;) - на самом деле моветоном является и использование кореловских сабскриптов-суперскриптов. Дело в том, что были прецеденты, когда при выводе в PS они слетали. По хорошему, регулировать надо размером кегля и положением относительно базовой линии.
 
  • Спасибо
Реакции: Jeine и Devust

Devust

Участник
Топикстартер
Сообщения
14
Реакции
0
М-м, ну если слетят при конвертации в pdf, то придётся и тут что-то придумывать. Спасибо.
 

Devust

Участник
Топикстартер
Сообщения
14
Реакции
0
Всё, написал что требуется для автоматизации:

Set s1 = ActiveLayer.CreateRectangle(s.PositionX - 0.02, s.PositionY + 0.02, s.RightX + 0.02, s.BottomY - 0.02)
s1.Outline.SetNoOutline: s1.Fill.ApplyUniformFill CreateRGBColor(255, 255, 255)
s1.MoveToLayer sloy_kv
s.MoveToLayer sloy_plast

s1 - плашки, s - текст. Да ещё и на разные слои раскидал.

Всем спасибо!
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Ну вот видите как все просто оказалось ;)
 

Devust

Участник
Топикстартер
Сообщения
14
Реакции
0
Да )) причём со слоями и этими прямоугольниками-плашками только сегодня и познакомился методом проб и ошибок ))
 
Статус
Закрыто для дальнейших ответов.