printer.
setOutputFormat(QPrinter::PdfFormat);
QPrinter printer;
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setPaperSize(QPrinter::A2);
QPrintDialog dialog(&printer, this);
To copy to clipboard, switch view to plain text mode
void MainWindow::on_actionPrint_triggered()
{
printer.
setOutputFormat(QPrinter::PdfFormat);
printer.
setPaperSize(QPrinter::A2);
// Default for the print dialog
dialog.setWindowTitle(tr("Print Document"));
if (dialog.
exec() == QDialog::Accepted) {
pp.begin(&printer);
QPagedPaintDevice::Margins margins = printer.margins();
int logicalHeight, logicalWidth;
std::cout << "paper width: " << printer.pageSizeMM().width() << " paper height: " << printer.pageSizeMM().height() << std::endl;
if (printer.
orientation() == QPrinter::Portrait) {
logicalWidth = printer.pageSizeMM().width() - (margins.left + margins.right);
logicalHeight = printer.pageSizeMM().height()- (margins.top + margins.bottom);
}
else
{
logicalWidth = printer.pageSizeMM().height() - (margins.left + margins.right);
logicalHeight = printer.pageSizeMM().width() - (margins.top + margins.bottom);
}
int physicalWidth = printer.width();
int physicalHeight = printer.height();
pp.setWindow(0, 0, logicalWidth, logicalHeight);
pp.setViewport(0, 0, physicalWidth, physicalHeight);
pp.drawRect(0, 0, logicalWidth, logicalHeight); // Drawing extents
QFont font
("Courier",
3);
// Seems this "3" is already in mm... pp.setFont(font);
pp.
drawText(QPointF(40,
40),
"Hello, World 3!");
font.setPointSize(4); // And this "4" too! :)
pp.setFont(font);
pp.
drawText(QPointF(80,
40),
"Hello, World 4!");
pp.drawRect(50, 50, 100, 100);
pp.end();
}
}
void MainWindow::on_actionPrint_triggered()
{
QPrinter printer;
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setPaperSize(QPrinter::A2); // Default for the print dialog
QPrintDialog dialog(&printer, this);
dialog.setWindowTitle(tr("Print Document"));
if (dialog.exec() == QDialog::Accepted)
{
QPainter pp;
pp.begin(&printer);
QPagedPaintDevice::Margins margins = printer.margins();
int logicalHeight, logicalWidth;
std::cout << "paper width: " << printer.pageSizeMM().width() << " paper height: " << printer.pageSizeMM().height() << std::endl;
if (printer.orientation() == QPrinter::Portrait)
{
logicalWidth = printer.pageSizeMM().width() - (margins.left + margins.right);
logicalHeight = printer.pageSizeMM().height()- (margins.top + margins.bottom);
}
else
{
logicalWidth = printer.pageSizeMM().height() - (margins.left + margins.right);
logicalHeight = printer.pageSizeMM().width() - (margins.top + margins.bottom);
}
int physicalWidth = printer.width();
int physicalHeight = printer.height();
pp.setWindow(0, 0, logicalWidth, logicalHeight);
pp.setViewport(0, 0, physicalWidth, physicalHeight);
pp.drawRect(0, 0, logicalWidth, logicalHeight); // Drawing extents
QFont font("Courier", 3); // Seems this "3" is already in mm...
pp.setFont(font);
pp.drawText(QPointF(40, 40), "Hello, World 3!");
font.setPointSize(4); // And this "4" too! :)
pp.setFont(font);
pp.drawText(QPointF(80, 40), "Hello, World 4!");
pp.drawRect(50, 50, 100, 100);
pp.end();
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks