Russian Qt Forum
Сентябрь 21, 2024, 09:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QPrinter::PdfFormat русские буквы в Windows?  (Прочитано 4398 раз)
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« : Июнь 04, 2012, 12:00 »

Надо генерировать PDF документ, содержащий текст в исходной кодировке CP-1251 (возможны и другие кодировки). QPrinter не приходилось пользоваться, тем более, встроенным генератором PDF. Не будет проблем?
Записан

2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #1 : Июнь 04, 2012, 14:17 »

Ну вот уже столкнулся с непонятным поведением, не работает задание характеристик шрифта.

Код:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);

QPrinter printer;
printer.setOutputFormat( QPrinter::PdfFormat );
printer.setPageSize( QPrinter::A4 );
printer.setOrientation( QPrinter::Landscape );
printer.setOutputFileName( "test.pdf" );
printer.setPageMargins( 20, 20, 15, 10, QPrinter::Millimeter );
QPainter painter;
QFont font;
font.setStyleHint( QFont::TypeWriter ); // игнорируется, какой шрифт не задай, печатает только гельветикой
// font.setFamily( "Courier" ); // тоже по барабану
// ради эксперимента написал:
font.setUnderline( true ); // и это проигнорировалось...
painter.setFont( font );
if( ! painter.begin( &printer ) )
return 1;
QTextCodec::setCodecForTr( QTextCodec::codecForName( "Windows-1251" ) );
painter.drawText( 0,  0, QObject::tr( "Проверка русских and latinic!" ) );
painter.drawText( 0, 20, QObject::tr( "Но шрифт не моноширинный" ) );

if( ! printer.newPage() )
return 1;

return 0;
}

Правда, обнаружил, что делал всё это в Qt4.5.2, но вроде бы это всё ещё в 4.2 появилось, должно работать.
« Последнее редактирование: Июнь 04, 2012, 14:19 от Гурман » Записан

2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #2 : Июнь 04, 2012, 15:22 »

Вот блин, забыл совсем. И небось же где-то далеко мелким шрифтом написано, что painter должен быть активен перед установкой шрифта... Почему-бы не позволить эту установку до его активности - совершенно не понятно.
Записан

2^7-1 == 127, задумайтесь...
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.044 секунд. Запросов: 23.