Проблема с кодировкой RTFTextControl
Добавлено: 24 Октябрь 2013, 17:21
Привет всем! Уважаемые, прошу совета.
Задача.
Данные по людям хранятся в таблице.
Используется текстовый Шаблон с переменными типа: ФИО, ДатаРождения и т.п. в формате 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 был сразу установлен для окна и контролов, причина не в этом.
Вопрос:
Как программно сделать так, чтобы шрифт в итоговом файле был без изменений?
Задача.
Данные по людям хранятся в таблице.
Используется текстовый Шаблон с переменными типа: ФИО, ДатаРождения и т.п. в формате 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 был сразу установлен для окна и контролов, причина не в этом.
Вопрос:
Как программно сделать так, чтобы шрифт в итоговом файле был без изменений?