title: How to print with landscape orientation in PyQt5?
body: <p>How can I modify this code to print automatically with, or to set default settings to landscape orientation?</p>
  
  <p>I'm new to PyQt5. Trying to make an app with printing function. I copy+pasted this code from the internet but it's default setting is portrait orientation. It would be important to print with landscape orientation automatically.</p>
  
  <pre><code>from PyQt5 import QtWidgets, QtCore, QtPrintSupport, QtGui
  
  class Window(QtWidgets.QWidget):
      def __init__(self):
          QtWidgets.QWidget.__init__(self)
          self.setWindowTitle(self.tr('Document Printer'))
          self.table = QtWidgets.QTableWidget(200, 5, self)
  
          for row in range(self.table.rowCount()):
              for col in range(self.table.columnCount()):
                  item = QtWidgets.QTableWidgetItem('(%d, %d)' % (row, col))
                  item.setTextAlignment(QtCore.Qt.AlignCenter)
                  self.table.setItem(row, col, item)
          self.table.setHorizontalHeaderLabels(
              'SKU #|NAME|DESCRIPTION|QUANTITY|PRICE'.split('|'))
          self.buttonPrint = QtWidgets.QPushButton('Print', self)
          self.buttonPrint.clicked.connect(self.handlePrint)
          self.buttonPreview = QtWidgets.QPushButton('Preview', self)
          self.buttonPreview.clicked.connect(self.handlePreview)
          layout = QtWidgets.QGridLayout(self)
          layout.addWidget(self.table, 0, 0, 1, 2)
          layout.addWidget(self.buttonPrint, 1, 0)
          layout.addWidget(self.buttonPreview, 1, 1)
  
      def handlePrint(self):
          dialog = QtPrintSupport.QPrintDialog()
          if dialog.exec_() == QtWidgets.QDialog.Accepted:
              self.handlePaintRequest(dialog.printer())
  
      def handlePreview(self):
          dialog = QtPrintSupport.QPrintPreviewDialog()
          dialog.paintRequested.connect(self.handlePaintRequest)
  
          dialog.exec_()
  
      def handlePaintRequest(self, printer):
          document = self.makeTableDocument()
          document.print_(printer)
  
      def makeTableDocument(self):
          document = QtGui.QTextDocument()
          cursor = QtGui.QTextCursor(document)
          rows = self.table.rowCount()
          columns = self.table.columnCount()
          table = cursor.insertTable(rows + 1, columns)
          format = table.format()
          format.setHeaderRowCount(1)
          table.setFormat(format)
          format = cursor.blockCharFormat()
          format.setFontWeight(QtGui.QFont.Bold)
          for column in range(columns):
              cursor.setCharFormat(format)
              cursor.insertText(
                  self.table.horizontalHeaderItem(column).text())
              cursor.movePosition(QtGui.QTextCursor.NextCell)
          for row in range(rows):
              for column in range(columns):
                  cursor.insertText(
                      self.table.item(row, column).text())
                  cursor.movePosition(QtGui.QTextCursor.NextCell)
          return document
  
  if __name__ == '__main__':
  
      import sys
      app = QtWidgets.QApplication(sys.argv)
      window = Window()
      window.resize(640, 480)
      window.show()
      sys.exit(app.exec_())
  </code></pre>
  
  <p>Do anyone have any idea? Or have a snippet of code to landscape printing in pyqt5? Thank You!</p>