コード例 #1
0
    def save_report(self, filename="", extension=".HTML"):
        """
        Save the generated report to the specified file
        Currently only html
        """
        full_filename = filename + extension.lower()
        full_filename = os.path.join(
            self._project_control.get_project_dir_absolute_path(),
            full_filename)

        if not self.report_html:
            self.__log.info("No report to save")
            return

        if extension == '.HTML':
            # HTML can contain non-ascii, so need to open with right encoding
            with open(full_filename, 'w', encoding='utf-8') as report_file:
                report_file.write(self.report_html)
                self.__log.info("Report written")
        elif extension == '.PDF':
            document = QTextDocument(parent=None)
            document.setHtml(self.report_html)
            printer = QPdfWriter(full_filename)
            printer.setPageSize(printer.A3)  # A3 to fit A4 page
            document.print_(printer)
        else:
            raise NotImplementedError

        # Show the generated report in the default browser
        url = os.path.realpath(full_filename)
        open_url(url=url)
コード例 #2
0
    window2 = MainWindow2()
    window2.show()

    ui_file = QFile("mainwindow2.ui")
    ui_file.open(QFile.ReadOnly)
    loader = QUiLoader()
    window3 = loader.load(ui_file)
    ui_file.close()
    window3.show()

    from PySide2.QtGui import QPdfWriter, QPainter, QPagedPaintDevice, QFont
    from PySide2.QtCore import QMargins, QRect, Qt

    qpdf_writer = QPdfWriter("file.pdf")
    qpdf_writer.setPageSize(QPagedPaintDevice.A4)
    qpdf_writer.setPageMargins(QMargins(20, 20, 20, 20))

    painter = QPainter(qpdf_writer)
    painter.setPen(Qt.black)
    painter.setFont(QFont("Times", 10))

    rect = painter.viewport()

    painter.drawText(rect, Qt.AlignCenter, "QTEXAMPLE")
    painter.end()

    from PySide2.QtGui import QTextDocument
    from PySide2.QtPrintSupport import QPrinter
    from PySide2.QtWidgets import QTextEdit