Russian Qt Forum
Март 29, 2024, 05:23
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Печать
>
QPrintPreviewDialog печатает пустые листы
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QPrintPreviewDialog печатает пустые листы (Прочитано 10045 раз)
alex7annet
Гость
QPrintPreviewDialog печатает пустые листы
«
:
Июль 20, 2011, 16:28 »
Привет всем!! Проблема следующая: не работает вывод на печать. В QPrintPreviewDialog появляется инфа для печати, а печатаются пустые листы. Кто-нибудь сталкивался
В линуксе ТОТ ЖЕ САМЫЙ КОД работает без проблем.
Windows XP, MinGW 4.4.0, Qt 4.7.3
Код:
void SalesList::printDoc(const QString &htmlText) {
QWebView * webView = new QWebView;
QPrinter * printer = new QPrinter;
// Настройка формата печати
printer->setOutputFormat(QPrinter::NativeFormat);
// По умолчанию ориентация - альбомная
printer->setOrientation(QPrinter::Landscape);
QPrintPreviewDialog * previewDlg = new QPrintPreviewDialog(printer, this, Qt::WindowMinMaxButtonsHint);
connect(previewDlg, SIGNAL(paintRequested(QPrinter *)), webView, SLOT(print(QPrinter*)));
webView->setHtml(htmlText.toAscii());
previewDlg->exec();
} //void SalesList::printDoc(const QString &htmlText)
Записан
sergun1604
Гость
Re: QPrintPreviewDialog печатает пустые листы
«
Ответ #1 :
Июль 21, 2011, 15:33 »
Переходи на Линукс!!!
Записан
mishabard
Гость
Re: QPrintPreviewDialog печатает пустые листы
«
Ответ #2 :
Июль 21, 2011, 15:39 »
Сейчас как раз пытаюсь решить ту же проблему. Под Линксом тоже самое. У меня HTML страница примерно на три листа, так в предварительном просмотре появлется возможность перейти на все три листа, но 2 и 3 пустые.
Записан
alex7annet
Гость
Re: QPrintPreviewDialog печатает пустые листы
«
Ответ #3 :
Июль 21, 2011, 18:53 »
Ну я уже на Линуксе, просто прогу нужно сделать именно для Windows. У меня в линуксе тоже не отображаются на предварительном просмотре все листы кроме первого, скорее всего дело в драйвере или в иксах, т.к. в Windows хоть и печатает пустые листы, но на предварительном просмотре все отлично. Сейчас скомпилировал qt ничего не отключая - попробую отпишусь)
Записан
alex7annet
Гость
Re: QPrintPreviewDialog печатает пустые листы
«
Ответ #4 :
Июль 23, 2011, 07:55 »
Не работает все равно. У кого-нибудь вообще работает печать QPrinter+QWebView на Windows. Если да, то с какими параметрами копилили qt и какой код реализует печать.
Уже все перепробовал.
QTextEdit - печатает, QTextDocument - печатает, QWebView - нет. Не могу никак сообразить в чем косяк
Ну не вариант рисовать все документы QPainter'ом...
Скорее всего ошибка в самом QT. Т.к. QWebView правильно отображает, но все равно печатает пустой лист. Это не зависит ни от от принтера ни от компьютера, ни от конкретной windows (проверял на xp/7). Сначала я подумал, что может быть дело в сложных CSS, которые дают где-то ошибку, но даже простая страница ("<html><body><p align=center><h1>ЭТО ТЕСТ ДЛЯ ПЕЧАТИ HTML СТРАНИЦЫ</h1></p></body></html>") все равно не печатается.
«
Последнее редактирование: Июль 23, 2011, 09:33 от alex7annet
»
Записан
alex7annet
Гость
Re: QPrintPreviewDialog печатает пустые листы
«
Ответ #5 :
Июль 24, 2011, 12:42 »
Проблема решилась.
Как я правильно предположил, дело было в баге qprinter. Вот соответствующий патч:
https://bugreports.qt.nokia.com/browse/QTBUG-17987
«
Последнее редактирование: Июль 24, 2011, 13:10 от alex7annet
»
Записан
mishabard
Гость
Re: QPrintPreviewDialog печатает пустые листы
«
Ответ #6 :
Июль 25, 2011, 09:37 »
Спасибо! попробую его под линуксом. может предварительный просмотр всех страниц появиться, а не только первой)))))
Записан
alex7annet
Гость
Re: QPrintPreviewDialog печатает пустые листы
«
Ответ #7 :
Июль 25, 2011, 10:20 »
Вряд ли.
Во-первых не отображение страниц и их не печать - это разные вещи. Кстати у меня тоже под линухом в предварительном просмотре отображается только первая страница, остальные пустые, хотя печатаются все - я думаю на этот счет стоит тоже поискать на багтрекере, в более ранних версиях qt такого не наблюдалось, скорее всего этот баг возник в версиях 4.7.2-4.7.3, как и пустые страницы, что-то они там с печатью намутили, поэтому в 4.7.4 должны поправить (как мне кажется).
Во-вторых баг помечен как баг под Windows.
В общем поищу как отладить эту багу, если найду то напишу)
«
Последнее редактирование: Июль 25, 2011, 10:24 от alex7annet
»
Записан
alex7annet
Гость
Re: QPrintPreviewDialog печатает пустые листы
«
Ответ #8 :
Июль 26, 2011, 10:29 »
Так, эта бага (не отображение всех страниц, кроме первой в QPrintPreviewDialog на линуксе) еще дополняется таким неприятным эффектом - когда вставляешь разрыв страницы в любое место, пропадает вообще все, даже первая страница. На багтрекере нашел очень похожий глюк:
https://bugreports.qt.nokia.com/browse/QTBUG-17895
Но там рекомендуют либо откатиться на 4.7.1, либо дождаться следующей версии.. Проблема только в том, что у меня в gentoo уже нет версии 4.7.1, либо 4.6.3, либо 4.7.2-3 ((
«
Последнее редактирование: Июль 26, 2011, 10:34 от alex7annet
»
Записан
alex7annet
Гость
Re: QPrintPreviewDialog печатает пустые листы
«
Ответ #9 :
Июль 26, 2011, 22:23 »
Еще один баг - qt игнорирует разрыв страницы: page-break-after/before.
Вообще хочу сказать, что qt это конечно круто, но печать ее ОЧЕНЬ слабое место. Я потратил 3 дня чтобы научить свою программу нормально печатать документы, в итоге так и не вышло. Поэтому я потратил еще два часа и реализовал свой предпросмотр печати на основе QWebView, в который я могу добавлять html странички, он их корректно отображает и печатает на Linux/Windows.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...