|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.02.2010, 18:37 | #1 |
Форумчанин
Регистрация: 12.08.2009
Сообщений: 118
|
Проблема с именем шрифта
В цикле вставляю текст
Код:
Откуда берется шрифт calibri? Я создаю документ на основе моего шаблона. В шаблоне задаю шрифт по умолчанию Times New Roman. Если в font->PutName() для всех итераций цикла задаю "Times New Roman" - все отрабатывает нормально. Свой шаблон создал в word-е задав шрифт и сохранив файл с расширением dotx и dot (для 2003 и 2007 word-a). Внутри xml-ей dotx-a находил слово calibri и заменял на Times New Roman - результат прежний. Возможно определить установил ли метод PutName желаемый Name? Почему шрифт устанавливается в calibri? Последний раз редактировалось Diego__; 22.02.2010 в 18:48. |
22.02.2010, 23:12 | #2 |
Форумчанин
Регистрация: 17.07.2009
Сообщений: 519
|
Дело в стилях
cм: http://wordexpert.ru/page/kak-izmeni...imes-new-roman |
23.02.2010, 15:43 | #3 |
Форумчанин
Регистрация: 12.08.2009
Сообщений: 118
|
Спасибо за ссылку. Получилось.
Столкнулся с еще одной проблемой. Вставляю следующий текст "Contents 1 Введение ................................... ................................... ............. 3 2 Условия, необходимые для начала работы ................................... .. 4 2.1 Необходимое ПО ................................... ................................... ... 4 3 Normal Flow ................................... ................................... ........... 7" Везде шрифт установлен тот что нужен, но для русского языка присутствует добавление (Body Asian), получается Times New Roman (Body Asian). Текст получается сильно растянутый в ширину. Что означает Body, Asian? Почему появляется данное окончание? Как этого можно избежать? Последний раз редактировалось Diego__; 23.02.2010 в 16:13. |
25.02.2010, 18:09 | #4 |
Форумчанин
Регистрация: 17.07.2009
Сообщений: 519
|
Выложите пример файла
|
25.02.2010, 18:34 | #5 |
Форумчанин
Регистрация: 12.08.2009
Сообщений: 118
|
Английский текст установлен в Times - так и должно быть.
Русский - Times New Roman (Body Asian), что то не так. |
25.02.2010, 19:22 | #6 |
Форумчанин
Регистрация: 17.07.2009
Сообщений: 519
|
Проблема проявляется у меня только в 2007. По крайней мере при пересохранении в .doc(2003) эффект исчезает ...
По всей видимости вставляемый вами фрагмент имеет установки для основного текста и загоовков - Восточно-азиатское письмо. Возможно Word не правильно интерпретирует юникод при вставке Проблема решается явным указанием кода языка для русских фрагментов. Код:
Последний раз редактировалось Aent; 25.02.2010 в 19:27. |
25.02.2010, 19:31 | #7 |
Пользователь
Регистрация: 21.02.2010
Сообщений: 36
|
Шрифт «calibri» берется по умолчанию Word 2007, также при открытии файлов от других пользователей, которые используют стили, установленные в Word, по умолчанию, тута получается интересная ситуация, любой файл, полученный от других пользователей, если Вы используете разную систему форматирования всегда слетит.........
|
26.02.2010, 12:08 | #8 |
Форумчанин
Регистрация: 12.08.2009
Сообщений: 118
|
После вставки range-a добавил Word::WdLanguageID lang = range->LanguageID; и в дебаге просмотрел что за язык. В первом и большинстве русских слов установлен wdRussian.
Где можно поставить/убрать установки "Восточно-азиатское письмо"? Обратил внимание на странный нюанс: если com модель word навствавляла текста и установила шрифт Calibri (body) шрифт выглядит растянутым. Сначала я предположил, что это так и должно быть. Но если я сам руками выделяю этот кусок текста и выбираю шрифт Calibri (body), который уже выбран, визуально шрифт меняется. В прикреплении рисунок со шрифтом после работы СОМ модели и моих установок. Откуда берется растяжение? |
26.02.2010, 15:34 | #9 |
Форумчанин
Регистрация: 12.08.2009
Сообщений: 118
|
небольшое наблюдение:
вставляемая строка "2 Условия, необходимые для начала работы ................................... .. 4" у меня разбита на несколько последовательно вставляемый частей. "2 |Условия|, |необходимые для начала работы| ................................... .. 4" каждая часть вставляется отдельно потому, что имеет различные параметры. Часть "необходимые для начала работы" я хочу вставить со шрифтом Times New Roman, перед ней часть ", " вставлена со шрифтом Times. Получаю для моего цикла: for (int i = 0; i < textCount; ++i) { ... range->InsertAfter(wordText.GetText().Get String()); строка "необходимые для начала работы" вставлена со шрифтом Times New Roman (Body), но пробелы в ней имеют шрифт Times Word::_FontPtr font = range->GetFont(); font->PutName(wordText.GetFont().c_str() ); части которые были Times установились в Times New Roman, остальное осталось Times New Roman (Body) font->PutSize(wordText.GetFontSize()); ... range->PutStart(range->GetEnd()); } непонятна причина частичной установки шрифта После этого руками любой части можно установить один шрифт. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
проблема отображения шрифта в Дэлфи | Lord777 | Общие вопросы Delphi | 2 | 06.01.2010 18:55 |
Количество записей с 1 именем | Gapro | БД в Delphi | 6 | 09.12.2009 15:31 |
Сохранить с нужным именем | maikoms | Microsoft Office Excel | 4 | 20.03.2009 11:44 |
Найти на диске файл с заданным именем | D1g1T | Помощь студентам | 9 | 02.01.2009 21:17 |
Возможно ли назвать переменную именем 1y? | Lamerok56 | Общие вопросы C/C++ | 4 | 18.04.2008 23:55 |