Изображение QPrinter обрезается при печати

Я пытаюсь распечатать изображение на ксерокопировальном принтере в Qt. Используя следующий код, я могу распечатать, однако изображение обрезается только до верхней трети страницы или около того, при использовании HighResolutionрежим на QPrinter. В ScreenResolutionон работает как положено, однако качество изображения довольно низкое. Вызов printer.setResolution() похоже, никак не влияет на качество печати.

Как ни странно, я могу расположить текст где угодно в QPainter, и он будет печатать нормально, именно изображение обрезается. Также странно то, что когда я использую QPrintPreviewDialogвсе выглядит хорошо, но отпечатанный результат все равно обрезан. Не зная, что делать дальше, я попробовал два разных принтера с одной и той же проблемой.

FWIW Я использую Windows.

      printer = QPrinter(QPrinter.HighResolution)
printer.setResolution(1200) # doesn't seem to do much
printer.setFullPage(True)
printer.setPageSize(QtGui.QPagedPaintDevice.Legal)

dialog = QPrintDialog(printer)
dialog.exec_()
im = QtGui.QImage('path/to/image')
im = im.scaledToWidth(printer.pageRect().width(), QtCore.Qt.SmoothTransformation)

painter = QtGui.QPainter()
painter.begin(printer)
painter.drawImage(0, 0, im)
painter.end()

0 ответов

Другие вопросы по тегам