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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Печать HTML (подгонка под размеры листа)  (Прочитано 3252 раз)
patison
Гость
« : Июль 31, 2013, 01:23 »

Есть проблема с печатью HTML. Использую QTextDocument для печати. Т.е. код примерно выглядит так:
Код:
QTextDocument doc;
doc.setHtml(sHtml);

QPrinter printer;
printer.setPrinterName(sPrinterName);
printer.setFullPage(true);

QPrintDialog dialog(&printer, this);
doc.print(&printer);

Данные уходят на печать, но принтер на котором печатается - не всегда обычный А4 принтер, иногда это может быть принтер с чеками. Проблема в том что контент (в случае с чековым принтером) постоянно вылазит за пределы видимости, так-же по краям огромные отступы (printer.setPageMargins(1,1,1,1,QPrinter::Millimeter) пробовал, не помогает).
Пробовал сторонние решения (отдельные утилиты для отправки на печать из консоли) - там все прекрасно.

Подскажите - как заставить печататься данные так что-бы они полностью заполнялил лист, и не вылезали за его пределы?

Заранее спасибо!
Записан
torwig
Самовар
**
Offline Offline

Сообщений: 134



Просмотр профиля
« Ответ #1 : Июль 31, 2013, 08:33 »

Код:
 
    printer.setPaperSize(QSizeF(ширина_чека, высота_чека), QPrinter::Millimeter);
    printer.setPageMargins(2, 5, 2, 2, QPrinter::Millimeter);
    QSizeF paperSize;
    paperSize.setWidth(printer.width());
    paperSize.setHeight(printer.height());
    textDocument.setPageSize(paperSize);
    textDocument.setDocumentMargin(0);

Как-то так, должно работать.
Записан
patison
Гость
« Ответ #2 : Июль 31, 2013, 18:22 »

Спасибо за ответ.
Мне крайне не понятно по какому принципу задается высота чека. Ведь его фактическая высота зависит от кол-ва контента. А в самом принтере лежит рулон бумаки, на который печатается контент.
Ну да ладно, это не так уж и важно. Примечательно то, что использовав ваш пример - контент по прежнему вылазит за пределы видимости, и все так-же огромный отступ слева (http://d.pr/i/m7sP). Такое ощущение что некоторые настройки задаваемые в приложении просто напросто игнорируются.


Огромное спасибо! Ваше решение подошло Улыбающийся
« Последнее редактирование: Июль 31, 2013, 22:43 от patison » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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