В начале на сцену на сцену загружается QGraphicsPixmapItem, который содержит сканированный бланк отчета (формат A4).
Затем на сцену добавляется текст.
После формирования отчета в QGraphicsView видно, что размер сцены немного больше размера бланка.
Отчет, как сохраняется в pdf, так и печатается на принтере.
Сохранение в pdf реализовано следующим образом:
C++ (Qt)
QPrinter printer(QPrinter::HighResolution);
printer.setPageSize(QPrinter::A4);
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName(QString("./report.pdf"));
printer.setPageMargins(0,0,0,0,QPrinter::Millimeter);
QPainter painter(&printer);
ui->view->scene()->render(&painter);
При этом размер pdf 209,903 x 297,039 мм.
Вывод на печать реализован следующим образом
C++ (Qt)
QPrinter printer;
if (QPrintDialog(&printer).exec() == QDialog::Accepted) {
printer.setResolution(QPrinter::HighResolution);
printer.setOutputFormat(QPrinter::NativeFormat);
printer.setPageSize(QPrinter::A4);
printer.setPaperSize(QSize(210,297),QPrinter::Millimeter);
printer.setPageMargins(0,0,0,0,QPrinter::Millimeter);
QPainter painter(&printer);
painter.setRenderHint(QPainter::Antialiasing);
ui->view->scene()->render(&painter);
}
При этом документ уплывает вверх и немного в сторону. Внизу несколько сантиметров пустого поля, а также нижняя часть бланка не пропечатана на сантиметр. Правая часть бланка пропечатана правильно но сдвинута на некоторое расстояния.
Верх и левая пторона бланка уходят за границы страницы.
Как корректно отпечатать документ?