При запросе в Базу данных использую QSqlQueryModel, добавляю эту модель в QTableView все хорошо, отображается. Мне необходимо эту табличку перевести в PDF. Знаю как сделать из QWebView в PDF с помощью QPrinter и QWebView::print(). Но возникла сложность при конвертации из QTableView в QWebView. Конечно можно брать отдельные элементы ячеек и заполнять с помощью html тэгов, но есть ли более элегантный способ для подобной конвертации?
Любой QWidget, в том числе QTableView, можно отпечатать в виде pdf.
void printToPDF( QWidget* w ) {
QPrinter printer(QPrinter::HighResolution);
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName("output.pdf");
// printer.setPageMargins(12, 16, 12, 20, QPrinter::Millimeter);
// printer.setFullPage(false);
// ...
QPainter painter(&printer);
// painter.translate( ..., ... );
// painter.scale( ..., ... );
w -> render(&painter);
}
Но, с высокой вероятностью, клиента это не устроит, поскольку ему нужно не то что он видит на экране, а что-то другое... Проще обойти в цикле все строки / ячейки и сформировать HTML документ вручную, со стилями, колонтитулами и т.д., а потом его отпечатать в PDF.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня есть два класса, которые раскинуты по разным хэдэрам и сурсным файлам, при этом в каждом из них есть некоторое количество статических...
Я перехватываю перемещение файла, в файле permissiontxt через \n записаны пути до файлов, которые перемещать нельзя Сейчас сильно остановился на больной...
А на x64 тот же самый код нормально работает, выдаёт полный стекВ чём может быть проблема? Может быть кто-нибудь сталкивался с подобной проблемой?
Есть JPanel на которой расположена кнопка и другая дочерняя панель закрашенная красным цветомДочерняя панель должна отрисовываться после...