Re: генерация документов с текстом на разных языках в Word'е
От: Sergey Россия  
Дата: 11.09.02 12:00
Оценка: 3 (1)
Здравствуйте gorodok, Вы писали:

G>Здравтвуите!

G>Возникла необходимость генерации документов Word2000(рус) с текстом на разных языках (русский, английский, немецкий, румынский, ....). Для работы используется компонент Delphi TWordDocument. Текст вставтяется с помощью функции TypeText. В функцию TypeText передается WideString-строка, которой было присвоено значение AnsiString-строки с иноязычным текстом (язык заранее известен). В итоге 'проблемные' буквы этих языков выводятся русскими символами. Попытки использовать функцию Keyboard и свойство LanguageID ни к чему не привели. Единсвенно, чего я достиг — написал поцедуру, которая подменяет коды 'проблемных' символов на их 2-байтные аналоги (только для одного языка). Может быть уже существуют более универсальная функция?

G>Если кто-то знает как решить мою проблему, пожалуйста, откликнитесь!


Решение это или нет, не знаю, но основную ошибку кажется вижу.
Передавать надо не wide string, а unicode строку. Соответственно, преобразовавать ansi в unicode c помощью MultiByteToWideChar с CodePage, соответствующей требуемому языку. Присваивание скорее всего просто вызывает GetACP, и информация о языке теряется. Не знаю правда, не испоганит ли в дальнейшем эту строку TWordDocument или сам Word2000, вдруг кто нибудь из них не уникодный...
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.