![]() |
|
Модераторы: mihanik |
![]()
|
|
| Diego1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 3.9.2009 Репутация: нет Всего: нет |
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 Буду рад решению на любом языке Присоединённый файл ( Кол-во скачиваний: 4 )
wordArt.doc 26,00 Kb |
|||
|
||||
| artdev |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 3.9.2009 Репутация: 1 Всего: 1 |
Я пока не нашел подходящих свойств/методов объектов Shape, TextEffect, TextFrame; также не смог сделать этого вручную с помощью диалога "Формат объекта WordArt".
Очередным поисковым запросом нашел тему 2004 года с неутешительным резюме от одного из Microsoft MVP:
|
|||
|
||||
| Diego1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 3.9.2009 Репутация: нет Всего: нет |
Существует программа "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:pict> <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:pict> </w:r>wict MОЁ <w:r> <w:pict> <v:shape style="z-index:251658240" > <v:textpath trim="t" fitpath="t" string="Our"/> </v:shape> </w:pict> </w:r> Пробую менять атрибуты моего xml и подсовывать его в архив, архив переименовываю в docx, открываю. Положительный результат получаю при удалении из моего варианта атрибута trim="t". Не могу найти соответствие данному атрибуту в модели Word. Подскажите, что это может быть? Присоединённый файл ( Кол-во скачиваний: 2 )
rotated_wordArt.doc 26,50 Kb |
|||
|
||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |