2015-12-21 7 views
1

С Qt 5.5 была введена QWebEngine, которая заменит QWebKit. С Qt 5.6 (LTS) QWebKit удаляется, так что пользователи имеют для использования QWebEngine. Миграция довольно проста, за исключением одного: печать веб-страниц. Это не реализовано, и они надеются, чтобы получить его в Qt 5.7 (но, возможно, даже позже). Другими словами: обязательная функция Qt удалена без предложения замены.Печать HTML/содержимого веб-страницы с Qt 5.5 или 5.6

Так что мой вопрос: как можно печатать содержимое HTML/веб-страницы в последних версиях Qt?

  • QTextDocument в качестве контейнера для содержимого HTML может быть использован для печати, но слишком ограничен
  • QWebEngine не предлагает функцию печати
  • делает QWebEngineView-> Render (& принтера) является плохим, потому что обходным путем он печатает только видимую часть отображаемой страницы (также, когда страница намного больше экрана)

Есть ли возможность в Qt порекомендовать? Или любые другие (тонкие) инструменты, которые можно использовать для этого и которые поддерживают образы, таблицы и макеты CSS?

Любые идеи и предложения приветствуются!

+0

См. Этот вопрос: http: /stackoverflow.com/questions/32711901/qwebengine-print-a-page/32712296#32712296, он объясняет, как распечатать страницу с помощью QWebEngine – demonplus

ответ

0

С большим количеством покалывания Qt-поддержки я не нашел решение, но может обновить состояние:

QWebKit ушел, но от своих текущих планов не будут удалены в Qt 5.6. Поскольку функция печати QWebEngine будет доступна раньше всего с Qt 5.7, они будут поддерживать QWebKit в исходном пакете.

Но: он будет доступен только в качестве источника, поэтому его необходимо скомпилировать вручную, чтобы использовать его. Более смешно: ребята из Qt не уверены в самом QWebKit. Один говорит, что источники будут доступны, но без гарантии, что он компилируется и работает с более новыми версиями, другой говорит, что он останется компилируемым до тех пор, пока он упакован (см. Комментарии на http://blog.qt.io/blog/2015/12/18/qt-5-6-beta-released/)