Печать HTML/содержимого веб-страницы с помощью Qt 5.5 или 5.6

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

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

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

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

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


person Elmi    schedule 21.12.2015    source источник
comment
См. этот вопрос: stackoverflow.com/questions/32711901/ qwebengine-print-a-page/ объясняет, как распечатать страницу с помощью QWebEngine.   -  person demonplus    schedule 26.04.2016


Ответы (1)


С большим колением 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/ )

person Elmi    schedule 29.01.2016