Russian Qt Forum

Qt => Печать => Тема начата: dxdy от Ноябрь 21, 2010, 18:19



Название: Печать документа
Отправлено: dxdy от Ноябрь 21, 2010, 18:19
Добрый день!
Нужно создать документ(таблицу) размера 100х210 (в миллиметрах) и распечатать. Поиск не дал результатов, так как на разных компьютерах разное разрешение и никак не привязать размер к пикселям. Пробовал создать html таблицу и распечатать на бумаге размера 100х210, но тогда не все столбцы вмещаются на бумагу. Программа из примера Qt "textedit" вообще не все мои html-тэги распознала, поэтому прошу помощи.


Название: Re: Печать документа
Отправлено: alexman от Ноябрь 21, 2010, 21:32
Так можно установить размеры таблицы в пикселях, учитывая сколько в одном пикселе милиметров.


Название: Re: Печать документа
Отправлено: dxdy от Ноябрь 22, 2010, 00:31
учитывая сколько в одном пикселе милиметров.
Например так
Цитировать
double onepoint = painter->device()->logicalDpiY() / N;
но какой константой задается N?


Название: Re: Печать документа
Отправлено: Barmaglodd от Ноябрь 22, 2010, 08:35
mm/25.4


Название: Re: Печать документа
Отправлено: alexman от Ноябрь 22, 2010, 09:24
учитывая сколько в одном пикселе милиметров.
Например так
Цитировать
double onepoint = painter->device()->logicalDpiY() / N;
но какой константой задается N?
Не знаю более изящного решения, но можно так:
Код:
(double)widget->width() / widget->widthMM(); // QWidget* widget = ...
(double)widget->height() / widget->heightMM();


Название: Re: Печать документа
Отправлено: dxdy от Ноябрь 24, 2010, 01:07
все равно не помогло, а можно изменить поля отступа в QPrinter?


Название: Re: Печать документа
Отправлено: Barmaglodd от Ноябрь 24, 2010, 08:15
"Таблица"- это что? QTextDocument, QTableView, QWebView или ещё что?
Я же тебе написал, точек в mm: painter->device()->logicalDpiY() / 25.4;
Границы у принтера QPrinter::setPageMargins.


Название: Re: Печать документа
Отправлено: dxdy от Ноябрь 25, 2010, 17:07
Barmaglodd спасибо, проблема решилась. Вся соль была в самом принтере.


Название: Re: Печать документа
Отправлено: blood_shadow от Февраль 26, 2011, 19:36
Barmaglodd спасибо, проблема решилась. Вся соль была в самом принтере.
можно поподробнее что надо сделать с принтером?