Builder c++ Rave сообщает о проблеме кодировки с кириллицей

Когда я пытаюсь сохранить проект rave в файле pdf\html, у меня неправильная кодировка. Когда вы выбираете формат и нажимаете СОХРАНИТЬ, он обычно сохраняется в коде iso-8859-1. Но мне нужен cp1251 (кириллица).

Например, "Площадь" вместо "Площадь".


person gen    schedule 05.04.2011    source источник


Ответы (2)


Я предполагаю, что лучшим решением вашей проблемы будет использование Unicode, а не кодовой страницы, такой как CP1251. Можно ли использовать Unicode с Rave Reports?

person Owen Blacker    schedule 03.05.2012

У меня такая же проблема, когда я хочу сохранить отчет в формате pdf. Мне нужно создать TRvRenderPDF и установить его как RenderObject, но pdf-файл просматривался неправильно.

  1. Компонент TRvRenderPDF не совместим с unicode(что очень плохо), поэтому весь текст в отчете переведен в Ansi с активной кодовой страницей(для кириллицы это CP1251). Теперь у нас есть pdf файл с текстом в кодировке CP1251.
  2. По умолчанию TRvRenderPDF генерирует pdf со шрифтом TYPE1 Helvetica (по стандарту формата pdf он встроен). Но текст интерпретируется с кодировкой ISO 8859-1(или CP1252), но кодировка была CP1251, поэтому у нас есть "PÏëîùàäü" или что-то подобное.

Что мы можем сделать:

  1. Получить шрифт TYPE1(CP1252), в котором служебные символы (цифры как в кириллических буквах в CP1251) заменены кириллическими глифами. Например ссылка и нам нужно ее установить.
  2. Теперь нам нужно заменить старое имя шрифта (Helvetica) из сгенерированного pdf-документа на новое имя шрифта (AGHelvetica). Вы можете сделать это с помощью текстового редактора или вашей программы (прочитать файл -> найти -> заменить -> сохранить файл).

Вот и вся ситуация.

P.S. Извините за мой английский.

П.П.С. Если установить свойство pdf-рендера EmbedBaseFonts = true, pdf-документ сохранялся со шрифтами TrueType, но проблема оставалась. Новичок в рендеринге Unicode? но не этот.

person victor07    schedule 09.08.2012