Пример #1
0
 def save(self, fname, format, draft):
     if is_text_string(fname):
         if format == "pdf":
             self.app = guidata.qapplication()
             if draft:
                 mode = QPrinter.ScreenResolution
             else:
                 mode = QPrinter.HighResolution
             printer = QPrinter(mode)
             printer.setOutputFormat(QPrinter.PdfFormat)
             printer.setOrientation(QPrinter.Landscape)
             printer.setOutputFileName(fname)
             printer.setCreator("guiqwt.pyplot")
             self.print_(printer)
         else:
             if self.win is None:
                 self.show()
             if PYQT5:
                 pixmap = self.win.centralWidget().grab()
             else:
                 pixmap = QPixmap.grabWidget(self.win.centralWidget())
             pixmap.save(fname, format.upper())
     else:
         # Buffer
         fd = fname
         assert hasattr(fd, "write"), "object is not file-like as expected"
         if self.win is None:
             self.show()
         pixmap = QPixmap.grabWidget(self.win.centralWidget())
         buff = QBuffer()
         buff.open(QIODevice.ReadWrite)
         pixmap.save(buff, format.upper())
         fd.write(buff.data())
         buff.close()
         fd.seek(0)
Пример #2
0
 def save_widget(self, fname):
     """Grab widget's window and save it to filename (\*.png, \*.pdf)"""
     fname = str(fname)
     if fname.lower().endswith(".pdf"):
         printer = QPrinter()
         printer.setOutputFormat(QPrinter.PdfFormat)
         printer.setOrientation(QPrinter.Landscape)
         printer.setOutputFileName(fname)
         printer.setCreator("guidata")
         self.print_(printer)
     elif fname.lower().endswith(".png"):
         pixmap = self.grab()
         pixmap.save(fname, "PNG")
     else:
         raise RuntimeError(_("Unknown file extension"))
Пример #3
0
def export_as_pdf(scene, file_name=None):
    if file_name is None:
        file_name, selected_filter = QFileDialog.getSaveFileName(
            None, caption="Export to PDF", filter="PNG Files (*.pdf)")
        if not file_name:
            return

    print(f"exporting scene to PDF: {file_name}")
    printer = QPrinter(QPrinter.HighResolution)
    printer.setPageSize(QPrinter.Letter)
    r = scene.sceneRect()
    if r.width() < r.height():
        printer.setOrientation(QPrinter.Portrait)
    else:
        printer.setOrientation(QPrinter.Landscape)
    printer.setOutputFormat(QPrinter.PdfFormat)
    printer.setOutputFileName(file_name)
    painter = QPainter(printer)
    scene.render(painter)
    painter.end()
Пример #4
0
    def print_(self):
        printer = QPrinter(QPrinter.HighResolution)

        printer.setCreator("Bode example")
        printer.setOrientation(QPrinter.Landscape)
        printer.setColorMode(QPrinter.Color)

        docName = str(self.plot.title().text())
        if not docName:
            docName.replace("\n", " -- ")
            printer.setDocName(docName)

        dialog = QPrintDialog(printer)
        if dialog.exec_():
            renderer = QwtPlotRenderer()
            if QPrinter.GrayScale == printer.colorMode():
                renderer.setDiscardFlag(QwtPlotRenderer.DiscardBackground)
                renderer.setDiscardFlag(
                    QwtPlotRenderer.DiscardCanvasBackground)
                renderer.setDiscardFlag(QwtPlotRenderer.DiscardCanvasFrame)
                renderer.setLayoutFlag(QwtPlotRenderer.FrameWithScales)
            renderer.renderTo(self.plot, printer)