Quantcast
Channel: Active questions tagged python - Stack Overflow
Viewing all articles
Browse latest Browse all 17129

Unable to print QWidget to PDF at acceptable quality

$
0
0

I am trying to print a QWidget to pdf at A4 page size with QPrinter. But unable to generate it in a acceptable quality. Please find the code I have tried below. Any help regarding the pdf quality is highly appreciatable.

import osimport datetimefrom PySide6.QtCore import QSizefrom PySide6.QtGui import QPageSizefrom PySide6.QtWidgets import QApplication, QWidget, QLineEdit, QLabel, QTableWidget, QVBoxLayout, QTableWidgetItem, QHeaderViewfrom PySide6.QtPrintSupport import QPrinterclass Example(QWidget):    def __init__(self):        super().__init__()        self.setStyleSheet("")        self.setFixedSize(QSize(794, 1123))        self.line = QLineEdit()        self.l1 = QLabel("This is testing")        self.table_widget = QTableWidget(4,5, self)        self.table_widget.setHorizontalHeaderLabels(["Item", "Batch"])        self.table_widget.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)        self.table_widget.setItem(0,0, QTableWidgetItem("Item Name"))        self.table_widget.setItem(0,1, QTableWidgetItem("Batch no"))        self.table_widget.setItem(0,2, QTableWidgetItem("Item Name"))        self.table_widget.setItem(0,3, QTableWidgetItem("Item Name"))        self.table_widget.setItem(1,0, QTableWidgetItem("Item Name"))        self.table_widget.setItem(1,1, QTableWidgetItem("Item Name"))        self.table_widget.setItem(1,2, QTableWidgetItem("Item Name"))        self.table_widget.setItem(1,3, QTableWidgetItem("Item Name"))        self.table_widget.setItem(2,0, QTableWidgetItem("Item Name"))        self.table_widget.setItem(2,1, QTableWidgetItem("Item Name"))        layout = QVBoxLayout()        layout.addWidget(self.table_widget)        self.setLayout(layout)    def exportToPDF(self, filename):        printer = QPrinter()        printer.setPageSize(QPageSize.A4)        printer.PrinterMode.HighResolution        printer.setOutputFormat(QPrinter.PdfFormat)        printer.setOutputFileName(filename)        self.render(printer)if __name__ == "__main__":    app = QApplication([])    example = Example()    example.show()    example.exportToPDF("invoice_" + str(datetime.datetime.now().strftime('%Y%m%d%H%M')) +".pdf")    os.system("start " +"invoice_" + str(datetime.datetime.now().strftime('%Y%m%d%H%M')) +".pdf")    app.exec()

Viewing all articles
Browse latest Browse all 17129

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>