QWebEngineView как настроить печать колонтитула?

Qt6. Есть компонент QWebEngineView, надо вызвать диалог печати, что бы в нем можно было настроить выводить колонтитулы на печать или нет.

Подскажите настройки, плиз.


Ответы (2 шт):

Автор решения: Oleg Palamarchuk

Могли бы, пожалуйста, приложить минимально воспроизводимый код? или Вы хотите сделать так, чтобы в окне отображения файла была кнопка "Распечатать"? введите сюда описание изображения

→ Ссылка
Автор решения: Oleg Palamarchuk
// 1. Создайте диалог настроек
// 2. Получите user-выбор
bool printHeaders = /* значение из диалога */;

// 3. Вставьте или уберите колонтитулы
QString js = printHeaders ? R"(
    // добавляем колонтитул
    if (!document.querySelector('.header')) {
        const header = document.createElement('div');
        header.className = 'header';
        header.innerText = 'Мой колонтитул';
        document.body.insertAdjacentElement('afterbegin', header);
    }
)" : R"(
    // удаляем колонтитул
    document.querySelectorAll('.header').forEach(e => e.remove());
)";

this->ui->webView->page()->runJavaScript(js, [=](const QVariant &){ 
    // После вставки/удаления колонтитулов вызываем печать
    QPrinter printer(QPrinter::HighResolution);
    // настройка принтера
    this->ui->webView->page()->print(&printer, [](bool success){
        if (success) {
            qDebug() << "Печать завершена успешно.";
        } else {
            qDebug() << "Ошибка при печати.";
        }
    });
});
→ Ссылка