Code: Select all
def save_to_pdf(self):
"""Save the display window as a PDF."""
# Create a QPrinter object
printer = QPrinter(QPrinter.PrinterMode.HighResolution)
printer.setOutputFormat(QPrinter.OutputFormat.PdfFormat)
# Ask the user for a file name and location to save the PDF
file_dialog = QFileDialog(self)
file_dialog.setAcceptMode(QFileDialog.AcceptMode.AcceptSave)
file_dialog.setNameFilter("PDF Files (*.pdf)")
file_dialog.setDefaultSuffix("pdf")
file_dialog.setWindowTitle("Save as PDF")
if file_dialog.exec():
file_name = file_dialog.selectedFiles()[0]
printer.setOutputFileName(file_name)
# Create a painter to render the content
from PyQt6.QtGui import QPainter
painter = QPainter(printer)
# Render the window onto the painter
self.render(painter)
painter.end()