Изображение 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()