Russian Qt Forum

Qt => Печать => Тема начата: Hort от Ноябрь 30, 2008, 18:08



Название: Какие еденицы измерения в QTextDocument::pageSize
Отправлено: Hort от Ноябрь 30, 2008, 18:08
Хочу сделать чтобы при печати контент из QTextDocument мог изменять свой маштаб.
Код
C++ (Qt)
QTextDocument printDoc;
QSizeF ps = printer->pageRect(QPrinter::Point).size();
printDoc.setPageSize(ps);
printDoc.setHtml(mainHtml);
 
printDoc.print(printer);
т.е. хочу получить размер страницы принтера, растянуть или уменьшить на некое кол-во % и вставить в setPageSize() документа.
только не могу понять в чем в QTextDocument::pageSize измеряется размер страницы.
или может есть более простой способ, а я тут изобретаю велосипед


Название: Re: Какие еденицы измерения в QTextDocument::pageSize
Отправлено: Hort от Ноябрь 30, 2008, 19:48
Код
C++ (Qt)
QSizeF ps = printer->paperRect(QPrinter::Inch).size();
ps.rwidth()=ps.width()*96;
ps.rheight()=ps.height()*96;
printDoc.setPageSize(ps);
Опытным путем удалось определить что это размер в пикселях.
Предыдущий пример не работал нормально т.к. QPrinter::Point (в документации написано) определен как 1/72 от дюйма, а у меня маштаб на мониторе - 96 пикселей на дюйм. теперь вопрос - как определить текущий маштаб монитора? ведь у других могут быть теже 72 пикселя на дюйм.