Печать и кодировка Topic is solved
Печать и кодировка
Есть таблица. Пытаюсь её напечатать, используя wxHtmlEasyPrinting. Русские символы печатаются кракозябрами. В самой таблице все верно отображается, включая локализованные названия дней недели. Т.е. локаль настроена верно.
Куда копать?
Куда копать?
Sorry for lame English...
-
- wxWorld Domination!
- Posts: 1471
- Joined: Tue Nov 14, 2006 7:58 am
- Location: Saint-Petersburg, Russia
Re: Печать и кодировка
Не совсем понятно, что это за "таблица"? Таблица в HTML файле? Или ты хочешь напечатать содержимое некого своего окна с таблицей используя wxHtmlEasyPrinting?Forest wrote:Есть таблица. Пытаюсь её напечатать, используя wxHtmlEasyPrinting. Русские символы печатаются кракозябрами. В самой таблице все верно отображается, включая локализованные названия дней недели. Т.е. локаль настроена верно.
Куда копать?
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
Мда... криво объяснил. Есть wxGrid, в котором есть какие-то данные. На экране все хорошо отображается. Теперь я делаю такой хтмл-текст:
Т.е. из данных из wxGrid делаю хтмл-табличку, которую хочу распечатать.
Code: Select all
wxString text="";
text+="<HTML><BODY>";
text+="<TABLE width=\"100%\" cellspacing=\"0\" border=\"1\">";
text+="<TR border=\"1\">";
text+="<TH width=\"20%\">";
text+=grid->GetColLabelValue(0);
text+="</TH>";
text+="<TH width=\"20%\">";
text+=grid->GetColLabelValue(1);
text+="</TH>";
text+="<TH width=\"20%\">";
text+=grid->GetColLabelValue(2);
text+="</TH>";
text+="<TH width=\"20%\">";
text+=grid->GetColLabelValue(3);
text+="</TH>";
text+="<TH width=\"20%\">";
text+=grid->GetColLabelValue(4);
text+="</TH>";
text+="</TR>";
for(int i=0; i<grid->GetNumberRows(); i++){
text+="<TR border=\"1\">";
text+="<TD width=\"20%\">";
text+=grid->GetCellValue(i, 0);
text+="</TD>";
text+="<TD width=\"20%\">";
text+=grid->GetCellValue(i, 1);
text+="</TD>";
text+="<TD width=\"20%\">";
text+=grid->GetCellValue(i, 2);
text+="</TD>";
text+="<TD width=\"20%\">";
text+=grid->GetCellValue(i, 3);
text+="</TD>";
text+="<TD width=\"20%\">";
text+=grid->GetCellValue(i, 4);
text+="</TD>";
text+="</TR>";
}
text+="</TABLE>";
text+="</BODY></HTML>";
Sorry for lame English...
- T-Rex
- Moderator
- Posts: 1248
- Joined: Sat Oct 23, 2004 9:58 am
- Location: Zaporizhzhya, Ukraine
- Contact:
А нечего использовать ANSI-шные сборкиРусские символы печатаются кракозябрами.
Ну и попробуй там в meta вроде можно кодировку указать windows-1251
Code: Select all
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
-
- wxWorld Domination!
- Posts: 1471
- Joined: Tue Nov 14, 2006 7:58 am
- Location: Saint-Petersburg, Russia
Ну, собственно T-Rex все объяснил
Могу только более полный пример привести:
Могу только более полный пример привести:
Code: Select all
<HTML>
<HEAD>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1251">
</HEAD>
<BODY LANG="ru-RU">
...
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
Code: Select all
text+="<HTML>";
text+="<HEAD>";
text+="<meta http-equiv=\"Content-Language\" content=\"ru\">";
text+="<meta http-equiv=\"Content-Type\" content=\"text/html;charset=windows-1251\">";
text+="</HEAD>";
text+="<BODY LANG=\"ru-RU\">";
text+="<TABLE width=\"100%\" cellspacing=\"0\" border=\"1\">";
Sorry for lame English...
-
- Super wx Problem Solver
- Posts: 401
- Joined: Wed Sep 21, 2005 8:17 am
- Location: Rostov-on-Don, Southern Russia
Одной Юникод сборки может быть недостаточно, рекомендую добавить в инициализатор OnInit() или в MainFrame(wxWindow* parent) следующий код:
Code: Select all
wxLocale m_locale;
m_locale.Init(wxLANGUAGE_RUSSIAN);
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0