Код: Выделить всё
printer = QPrinter(QPrinter.PrinterMode.HighResolution)
printer.setDocName('Bulletin')
printer.setPageSize(QPageSize(QPageSize.PageSizeId.Letter))
printer.setPageMargins(QMarginsF(0.25, 0.25, 0.25, 0.25))
printer.setPageOrientation(QPageLayout.Orientation.Landscape)
print_preview_dialog = QPrintPreviewDialog(printer)
print_preview_dialog.paintRequested.connect(lambda: self.do_print(pdf_doc, printer, preview=True))
result = print_preview_dialog.exec()

Однако после нажатия кнопки печати открывается диалоговое окно печати Windows, в котором по умолчанию используется «Портрет»:

Я пару дней гуглил, пытаясь найти решение, но ничего не нашел, кроме общих комментариев о том, что вызов setPageOrientation на QPrinter должен правильно установите ориентацию.
Кстати, я также пробовал использовать только QPrintDialog, вызываемый с помощью того же QPrinter, и по умолчанию он по-прежнему имеет книжную ориентацию.
Как это сделать? я понимаю это (второй) диалог печати с учетом ориентации, показанной в QPrintPreviewDialog?
Подробнее здесь: https://stackoverflow.com/questions/792 ... int-dialog