Hello! I want to render a widget to a .pdf file, but I ran into a problem.
Qt Code:
  1. x = (printerResolution / 2.54) * (tableWidth * 2.54) / self.DPI # widget width
  2. y = (printerResolution / 2.54) * (tableHeight * 2.54) / self.DPI # widget height
  3. printer = QtPrintSupport.QPrinter(QtPrintSupport.QPrinter.HighResolution)
  4. printer.setOutputFormat(QtPrintSupport.QPrinter.PdfFormat)
  5. printer.setOrientation(QtPrintSupport.QPrinter.Landscape)
  6. printer.setOutputFileName(f"example.pdf")
  7.  
  8. printer.setPageMargins(0, 0, 0, 0, QtPrintSupport.QPrinter.Millimeter)
  9. printer.setFullPage(True)
  10. printer.setPageSize(QtPrintSupport.QPrinter.A4)
  11.  
  12. painter = QPainter()
  13. painter.begin(printer)
  14. rect = painter.viewport()
  15. painter.setViewport(rect.x(), rect.y(), tableWidth, tableHeight)
  16. painter.setWindow(rect.x(), rect.y(), tableWidth, tableHeight)
  17.  
  18. xscale = (printer.pageRect().width() / x) * 0.5 # when instead of 0.5 I insert a higher ratio (> 0.5) I get an empty .pdf file
  19. yscale = (printer.pageRect().height() / y) * 0.5 # same
  20. print("PAGERECT$", printer.pageRect())
  21. scale = min(xscale, yscale)
  22.  
  23. painter.translate(printer.pageRect().topLeft())
  24. painter.scale(scale, scale)
  25. self.table.render(painter)
  26. painter.end()
To copy to clipboard, switch view to plain text mode 

Why is the .pdf file drawn only when the coefficient is not more than 5?