Как в WordArt задавать верхний и нижний выносные элементы(ascender/descender)?)
Модератор: Naeel Maqsudov
MS Word. Код представлен на языке С++.
Создаю WordArt:
Word::ShapePtr wordArt = m_WordDocument->Shapes->AddTextEffect(Office::msoTextEffec t1, L"Param pam pam", L"Arial", 16, Office::msoFalse, Office::msoFalse, m_AppWord->CentimetersToPoints(1), m_AppWord->CentimetersToPoints(1));
задаю размер
wordArt->PutWidth(CentimetersToPoints(3)) ;
wordArt->PutHeight(CentimetersToPoints(1) );
здесь все хороошо.
Ручками в документе редактирую мое "Param pam pam", убираю все буквы 'p' образуется текст без верхних и нижних выносных элементов "aram am am". При этом объект WordArt растягивается на всю высоту заданную ранее 3х1. Как задать учет верхнего и нижнего выносных элементов? Т.е. чтобы при редактировании фразы высота символов не изменялась.
В прикреплении файл демонстрирующий данную проблему
Верхний и нижний выносные элементы это, например: b,t,i,f - имеют верхний выносной элемент; q,p, - имеют нижний выносной элемент. a,w,e, s, o - не имеют данных элементов. Все большие символы имеют верхний выносной элемент ABCDEF
Буду рад решению на любом языке
Создаю WordArt:
Word::ShapePtr wordArt = m_WordDocument->Shapes->AddTextEffect(Office::msoTextEffec t1, L"Param pam pam", L"Arial", 16, Office::msoFalse, Office::msoFalse, m_AppWord->CentimetersToPoints(1), m_AppWord->CentimetersToPoints(1));
задаю размер
wordArt->PutWidth(CentimetersToPoints(3)) ;
wordArt->PutHeight(CentimetersToPoints(1) );
здесь все хороошо.
Ручками в документе редактирую мое "Param pam pam", убираю все буквы 'p' образуется текст без верхних и нижних выносных элементов "aram am am". При этом объект WordArt растягивается на всю высоту заданную ранее 3х1. Как задать учет верхнего и нижнего выносных элементов? Т.е. чтобы при редактировании фразы высота символов не изменялась.
В прикреплении файл демонстрирующий данную проблему
Верхний и нижний выносные элементы это, например: b,t,i,f - имеют верхний выносной элемент; q,p, - имеют нижний выносной элемент. a,w,e, s, o - не имеют данных элементов. Все большие символы имеют верхний выносной элемент ABCDEF
Буду рад решению на любом языке
- Вложения
-
- wordArt.zip
- (5.34 КБ) 59 скачиваний
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Я бы попробовал дописать к тексту в конце символ с "выносными элементами"
и закрыл бы его потом наложенным сверху прямоугольником без границы и с заливкой фоном страницы. Прямоугольник проще всего сделать из jpg. Можно создать его динамически из шейпа специальной вставкой. Затем меняем яркость и контрастность
для подгонки к фону.
и закрыл бы его потом наложенным сверху прямоугольником без границы и с заливкой фоном страницы. Прямоугольник проще всего сделать из jpg. Можно создать его динамически из шейпа специальной вставкой. Затем меняем яркость и контрастность
для подгонки к фону.
- Вложения
-
- wordArt.zip
- (3.46 КБ) 60 скачиваний
Андрей Энтелис,
aentelis.livejournal.com
aentelis.livejournal.com
Хочется без этого...
Существует программа "Nitro pdf" редактор pdf файлов. В ней есть возможность конвертации pdf файлов в doc. Повернутый pdf текст конвертируется в WordArt. Результат конвертации простенького файла в прикреплении.
Как видно из файла нужный эффект можно реализовать. Но, как?
Пробовал:
1. Пересохранял данный файл в docx формат. docx - это заархивированный xml. Переименовываю docx в zip, открываю архив, в полученных файлах открываю document.xml. Нахожу свое "Param pam pam".
2. Таким же образом поступаю с файлом созданным моей программой. Т.е. у меня 2 файла document.xml, первый созданный "Nitro pdf", второй созданный мной. Смотрю отличия... Ниже привожу упрощенный вид xml файлов. В них удалено все что не относится к "param pam pam" и то, что у 2х версий xml одинаковое.
Nitro PDF
<w:r>
<w
ict>
<v:shape style="z-index:-1" o:allowincell="f"stroked="f">
<o:extrusion v:ext="view" autorotationcenter="t"/>
<v:textpath string="Nitro"/>
</v:shape>
</w
ict>
</w:r>
MОЁ
<w:r>
<w
ict>
<v:shape style="z-index:251658240" >
<v:textpath trim="t" fitpath="t" string="Our"/>
</v:shape>
</w
ict>
</w:r>
Пробую менять атрибуты моего xml и подсовывать его в архив, архив переименовываю в docx, открываю.
Положительный результат получаю при удалении из моего варианта атрибута trim="t". Не могу найти соответствие данному атрибуту в модели Word.
Подскажите, что это может быть?
Существует программа "Nitro pdf" редактор pdf файлов. В ней есть возможность конвертации pdf файлов в doc. Повернутый pdf текст конвертируется в WordArt. Результат конвертации простенького файла в прикреплении.
Как видно из файла нужный эффект можно реализовать. Но, как?
Пробовал:
1. Пересохранял данный файл в docx формат. docx - это заархивированный xml. Переименовываю docx в zip, открываю архив, в полученных файлах открываю document.xml. Нахожу свое "Param pam pam".
2. Таким же образом поступаю с файлом созданным моей программой. Т.е. у меня 2 файла document.xml, первый созданный "Nitro pdf", второй созданный мной. Смотрю отличия... Ниже привожу упрощенный вид xml файлов. В них удалено все что не относится к "param pam pam" и то, что у 2х версий xml одинаковое.
Nitro PDF
<w:r>
<w

<v:shape style="z-index:-1" o:allowincell="f"stroked="f">
<o:extrusion v:ext="view" autorotationcenter="t"/>
<v:textpath string="Nitro"/>
</v:shape>
</w

</w:r>
MОЁ
<w:r>
<w

<v:shape style="z-index:251658240" >
<v:textpath trim="t" fitpath="t" string="Our"/>
</v:shape>
</w

</w:r>
Пробую менять атрибуты моего xml и подсовывать его в архив, архив переименовываю в docx, открываю.
Положительный результат получаю при удалении из моего варианта атрибута trim="t". Не могу найти соответствие данному атрибуту в модели Word.
Подскажите, что это может быть?
- Вложения
-
- wordArt.zip
- (3.46 КБ) 55 скачиваний
Хочется без этого...
Существует программа "Nitro pdf" редактор pdf файлов. В ней есть возможность конвертации pdf файлов в doc. Повернутый pdf текст конвертируется в WordArt. Результат конвертации простенького файла в прикреплении.
Как видно из файла нужный эффект можно реализовать. Но, как?
Пробовал:
1. Пересохранял данный файл в docx формат. docx - это заархивированный xml. Переименовываю docx в zip, открываю архив, в полученных файлах открываю document.xml. Нахожу свое "Param pam pam".
2. Таким же образом поступаю с файлом созданным моей программой. Т.е. у меня 2 файла document.xml, первый созданный "Nitro pdf", второй созданный мной. Смотрю отличия... Ниже привожу упрощенный вид xml файлов. В них удалено все что не относится к "param pam pam" и то, что у 2х версий xml одинаковое.
Nitro PDF
<w:r>
<w
ict>
<v:shape style="z-index:-1" o:allowincell="f"stroked="f">
<o:extrusion v:ext="view" autorotationcenter="t"/>
<v:textpath string="Nitro"/>
</v:shape>
</w
ict>
</w:r>
MОЁ
<w:r>
<w
ict>
<v:shape style="z-index:251658240" >
<v:textpath trim="t" fitpath="t" string="Our"/>
</v:shape>
</w
ict>
</w:r>
Пробую менять атрибуты моего xml и подсовывать его в архив, архив переименовываю в docx, открываю.
Положительный результат получаю при удалении из моего варианта атрибута trim="t". Не могу найти соответствие данному атрибуту в модели Word.
Подскажите, что это может быть?
Существует программа "Nitro pdf" редактор pdf файлов. В ней есть возможность конвертации pdf файлов в doc. Повернутый pdf текст конвертируется в WordArt. Результат конвертации простенького файла в прикреплении.
Как видно из файла нужный эффект можно реализовать. Но, как?
Пробовал:
1. Пересохранял данный файл в docx формат. docx - это заархивированный xml. Переименовываю docx в zip, открываю архив, в полученных файлах открываю document.xml. Нахожу свое "Param pam pam".
2. Таким же образом поступаю с файлом созданным моей программой. Т.е. у меня 2 файла document.xml, первый созданный "Nitro pdf", второй созданный мной. Смотрю отличия... Ниже привожу упрощенный вид xml файлов. В них удалено все что не относится к "param pam pam" и то, что у 2х версий xml одинаковое.
Nitro PDF
<w:r>
<w

<v:shape style="z-index:-1" o:allowincell="f"stroked="f">
<o:extrusion v:ext="view" autorotationcenter="t"/>
<v:textpath string="Nitro"/>
</v:shape>
</w

</w:r>
MОЁ
<w:r>
<w

<v:shape style="z-index:251658240" >
<v:textpath trim="t" fitpath="t" string="Our"/>
</v:shape>
</w

</w:r>
Пробую менять атрибуты моего xml и подсовывать его в архив, архив переименовываю в docx, открываю.
Положительный результат получаю при удалении из моего варианта атрибута trim="t". Не могу найти соответствие данному атрибуту в модели Word.
Подскажите, что это может быть?
- Вложения
-
- rotated wordArt.zip
- (5.73 КБ) 61 скачивание
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
То что вы добились требуемого эффекта корректируя VML не означает что то же можно сделать через объектную модель Word(Art). Изоморфизма тут нет.
Ближе всего к вопросу TextEffect.NormalizedHeight = False
Но это будет срабатывать только при наличии букв с выносами в тексте
Кстати, для доступа к VML пересохранять документ не обязательно
Достаточно нажать Alt-Shift-F11 (или Сервис->Макросы-Редактор сценариев (для 2003 Office)). Разумеется, предполагается что MSE установлен при инсталляции офиса.
Можно конечно повозиться с программным изменением VML, но IMHO проще
наложить маску (jpg) и сгруппировать шейпы.
Ближе всего к вопросу TextEffect.NormalizedHeight = False
Но это будет срабатывать только при наличии букв с выносами в тексте
Кстати, для доступа к VML пересохранять документ не обязательно

Достаточно нажать Alt-Shift-F11 (или Сервис->Макросы-Редактор сценариев (для 2003 Office)). Разумеется, предполагается что MSE установлен при инсталляции офиса.
Можно конечно повозиться с программным изменением VML, но IMHO проще
наложить маску (jpg) и сгруппировать шейпы.
Андрей Энтелис,
aentelis.livejournal.com
aentelis.livejournal.com
Спасибо, Aent.
Мне бы повозиться с программным изменением VML
Можете привести простенький пример, как изменить атрибут заданного тега?
В моем случае хочется удалить атрибут trim="t" тега v:textpath.
Мне бы повозиться с программным изменением VML

Можете привести простенький пример, как изменить атрибут заданного тега?
В моем случае хочется удалить атрибут trim="t" тега v:textpath.
Пишу запрос к базе даныых в Access и получаю результат в виде таблицы. Мне необходимо этот результат сохранить в разделе таблицы Access. Я это делаю пока таким образом, выделяю пр. кн. мыши полученные данные, копирую, вставляю в Excel, сохраняю файл, а потом экспортирую в таблицу Access. Можно ли как то все это сделать быстрее?
Спасибо.
Спасибо.
-
- Сообщения: 526
- Зарегистрирован: 04 фев 2007, 18:37
- Откуда: Сургут
- Контактная информация:
Здравствуйте Albunc.
конечно можно сделать все, но какое это имеет отношение к WordArt
для получения ответа, Создайте свою тему.
Евгений.
конечно можно сделать все, но какое это имеет отношение к WordArt

для получения ответа, Создайте свою тему.
Евгений.
Пожалуйста помогите. Необходимо, чтобы при печати документа элементы управления не отображались. В Eexcel это делается просто у элемента управления свойство PrintObjtct = false . В Word я такого не нашла. Может быть у кого-нибудь есть такой опыт?
кстати не сочтите за рекламу, поиграл в галактическую браузерную игре _http://netassault.ru - затянуло, на этом форуме обсуждают тему но потерял раздел, как бы найти?
кстати не сочтите за рекламу, поиграл в галактическую браузерную игре _http://netassault.ru - затянуло, на этом форуме обсуждают тему но потерял раздел, как бы найти?