Страница 1 из 1

Проблема с кодировкой RTFTextControl

Добавлено: 24 Октябрь 2013, 17:21
LuckyAlex
Привет всем! Уважаемые, прошу совета.

Задача.

Данные по людям хранятся в таблице.
Используется текстовый Шаблон с переменными типа: ФИО, ДатаРождения и т.п. в формате RTF.
Программа заменяет переменные шаблона на значения из строки таблицы, затем полученный документ сохраняется с новым именем в формате RTF.

Используется контрол RTFTextControl, в который загружается содержимое RTF-шаблона.
Затем производится замена переменных на значения из строки таблицы, после чего полученное содержимое сохраняется с новым именем.

Проблема:

После открытия полученного таким образом итогового RTF-файла выяснилось, что все шрифты в нем изменились по сравнению с
исходным RTF-шаблоном. К первоначальному имени шрифта добавляется CYR.
Например, если в исходном шаблоне был шрифт "Arial", а в итоговом файле стал шрифт "Arial CYR", а вместо "Times New Roman"
становится "Times New Roman CYR".
При этом изменяется форма символов - они становятся уже и выше, чем были в исходном шрифте.
В результате, если шаблон входил на одну страницу, то итоговый документ уже занимает больше одной страницы.

После экспериментов выяснил, что замены на шрифт не влияют. Если просто загрузить в RTFTextControl RTF-шаблон и, сразу
сохранить с новым именем, то шрифты сразу портятся.

Похоже, что Clarion при открытии шаблона сразу некорректно меняет кодировку шрифта. Потому, что если разместить в окне с заполненным из шаблона RTFTextControl-ом соответствующий ему RTFToolBar, затем вручную на экране выделить весь текст и через RTFToolBar выбрать CHARSET, причем неважно какой - "ЗападныЙ" или "Кириллица", то при сохранении файла все ОК.

CHARSET:Cyrillic был сразу установлен для окна и контролов, причина не в этом.

Вопрос:
Как программно сделать так, чтобы шрифт в итоговом файле был без изменений?

Re: Проблема с кодировкой RTFTextControl

Добавлено: 24 Октябрь 2013, 19:21
morkovin
А если попробовать другой RichControl - от LocusABC? Там есть такой.

Re: Проблема с кодировкой RTFTextControl

Добавлено: 25 Октябрь 2013, 8:12
LuckyAlex
Прошу простить новичка за невежество, но LocusABC это шаблоны сторонней разработки или Clarion и для какой версии? У меня С8.

Спасибо за ответ!

Re: Проблема с кодировкой RTFTextControl

Добавлено: 25 Октябрь 2013, 8:26
LuckyAlex
Уже нашел LocusABC на сайте разработчика, там для С7, не скачивал, пока некогда. Но все же, а как с кларионовским RTFTextControl люди работают ?

Re: Проблема с кодировкой RTFTextControl

Добавлено: 25 Октябрь 2013, 10:37
Yufil
Типичная проблема для шаблонов RTF
Идентификатор пишется на ихнем, а заменяется на текст на вел. и мог.
Но в шаблоне зафиксировано, что идентификатор имеет буржуинскую кодировку.

Попробуй в шаблоне текста заменить строку 'fcharset0' на 'fcharset204' - и будет щастье

Re: Проблема с кодировкой RTFTextControl

Добавлено: 25 Октябрь 2013, 17:47
LuckyAlex
Yufil, спасибо за ответ!
Сделал, не помогло.