Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: TheMixa от Август 31, 2010, 10:47



Название: poppler-qt4 и печать [РЕШЕНО]
Отправлено: TheMixa от Август 31, 2010, 10:47
Никто не реализовывал печать страниц(или всего документа) отрендерених библиотекой poppler-qt4?


Название: Re: poppler-qt4 и печать
Отправлено: Denjs от Август 31, 2010, 11:43
Никто не реализовывал печать страниц(или всего документа) отрендерених библиотекой poppler-qt4?
то что отрендерено - вы можете нарисовать на QPaintDevice?
если да, то используйте стандартные механизмы печати Qt - рисуйте это на QPrinter и, думаю, будет вам счастье.... или что-то не выходит?


Название: Re: poppler-qt4 и печать
Отправлено: TheMixa от Август 31, 2010, 14:38
это понятно но рендерится оно для экрана.
в общем внимательно посомтрел на poppler-qt4  и нашел там то что надо Poppler::PSConverter


Название: Re: poppler-qt4 и печать [РЕШЕНО]
Отправлено: TheMixa от Сентябрь 02, 2010, 10:38
Добавлю вдруг ктото сталкнется с аналогичной проблемой, время съкономите немало.

Poppler(покрайней мере по части биндингов к qt4) непредоставляет функций печати как таковых ибо рассчитан впервую очередь на nix а там unix-way и можно напрямую postscript кидать в lpr. Для win32-сборки есть два варианта:
1)напрямую кидать postscript используя недокументированную функцию QPrinter::getDC() но это русская рулетка так как надо знать наверняка пережует драйвер принтера такое или нет, если понять как выяснить это то получается оптимальный вариант для нормальных офисных принтеров
2)традиционно через QPainter, получается максимально кроссплатформенно, не надо поддерживать несколько вариантов, но тут два момента:
   a) в linux(на win32 еще детально не тестил) обязательно  QPrinter printer(QPrinter::HighResolution); иначе результат будет невпечатляющим
   b) приводить изображение к 300dpi иначе 1200 или даже 600dpi медленно формируются на печать, а результат для текста почти идентичен.