def imprime(self):
printer = QPrinter(QPrinter.HighResolution)
printer.setPageSize(QPrinter.A4)
printer.setColorMode(QPrinter.Color)
printer.setCreator("Dieu")
printer.setDocName("ma belle image")
printer.setOutputFileName("image.pdf")
dialog = QPrintDialog(printer, self)
ret = dialog.exec_()
if ret != QDialog.Accepted:
return
painter = QPainter()
self.export_to_pages(painter, printer)
def export_to_pages(self, painter, printer):
""" export_to_pages: export the scene on painter with a number of pages
"""
w = printer.pageRect().width()
h = printer.pageRect().height()
numPage = int(round(self.ui.vue.scene.height() / h))
painter.begin(printer)
for page in range(0, numPage):
self.ui.vue.scene.render(painter, QRectF(0, 0, w, h), QRectF(0, h * page, w, h))
if page < numPage-1:
printer.newPage()
painter.end()