Example #1
0
    def slotPrint(self):
        import cups
        import subprocess
        from PyQt5.QtPrintSupport import QPrintDialog
        from PyQt5.QtPrintSupport import QPrinter
        from PyQt5 import QtGui
        croppedFilename = "%s-cropped.pdf" % splitext(
            str_unicode(self.fileName))[0]
        # printerCon = cups.Connection()

        printer = QPrinter()
        printDlg = QPrintDialog(printer)
        if printDlg.exec() == QDialog.Accepted:
            printerName = printer.printerName()
            cmdLine = ['lp', '-d', printerName]
            cmdLine += ['-n', str(printer.copyCount())]
            cmdLine += ['-o', 'fit-to-page'
                        ]  # We want to print out the cropped PDF anyway.
            # Handle duplex
            if printer.duplex() == QPrinter.DuplexNone:
                cmdLine += ['-o', 'Duplex=None']
            if printer.duplex() == QPrinter.DuplexLongSide:
                cmdLine += ['-o', 'Duplex=DuplexNoTumble']
            if printer.duplex() == QPrinter.DuplexShortSide:
                cmdLine += ['-o', 'Duplex=DuplexTumble']
            # Orientation
            if printer.pageLayout().orientation() == QPageLayout.Landscape:
                cmdLine += ['-o', 'landscape']
            # Color mode
            if printer.colorMode() == QPrinter.GrayScale:
                cmdLine += ['-o', 'ColorMode=Grayscale']
            if printer.colorMode() == QPrinter.Color:
                cmdLine += ['-o', 'ColorMode=Color']
            # Page size
            pagesizeid_to_pagesize = {}
            for prop_name in QPageSize.__dict__.keys():
                if type(QPageSize.__dict__[prop_name]) == type(
                        QPageSize.PageSizeId()):
                    pagesizeid_to_pagesize[
                        QPageSize.__dict__[prop_name]] = prop_name
            cmdLine += [
                '-o', 'media=' +
                pagesizeid_to_pagesize[printer.pageLayout().pageSize().id()]
            ]

            cmdLine.append(croppedFilename)
            # printersLst = printerCon.getPrinters()
            # printer = QInputDialog.getItem(self, "Please select printer", "", list(printersLst.keys()))
            print('Print command line: ' + ' '.join(cmdLine))
            subprocess.check_call(cmdLine)
Example #2
0
    def mprint(self):
        printer = QPrinter(QPrinter.HighResolution)
        docName = "Humm"  #self.d_plot.title().text()
        #if ( not docName.isEmpty() ):
        #docName.replace ( QRegExp ( QString.fromLatin1 ( "\n" ) ), tr ( " -- " ) )
        printer.setDocName(docName)

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

        dialog = QPrintDialog(printer)
        if (dialog.exec_()):
            renderer = Qwt.QwtPlotRenderer()
            if (printer.colorMode() == QPrinter.GrayScale):
                renderer.setDiscardFlag(Qwt.QwtPlotRenderer.DiscardBackground)
                renderer.setDiscardFlag(
                    Qwt.QwtPlotRenderer.DiscardCanvasBackground)
                renderer.setDiscardFlag(Qwt.QwtPlotRenderer.DiscardCanvasFrame)
                renderer.setLayoutFlag(Qwt.QwtPlotRenderer.FrameWithScales)
            renderer.renderTo(self.d_plot, printer)
Example #3
0
 def __printImage(self):
     """
     Private slot to handle the Print Image menu action.
     """
     if self.mainWidget is None:
         E5MessageBox.critical(
             self,
             self.tr("Print Image"),
             self.tr("""There is no UI file loaded."""))
         return
     
     settings = Preferences.Prefs.settings
     printer = QPrinter(QPrinter.HighResolution)
     printer.setFullPage(True)
     
     printerName = Preferences.getPrinter("UIPreviewer/printername")
     if printerName:
         printer.setPrinterName(printerName)
     printer.setPageSize(
         QPrinter.PageSize(int(settings.value("UIPreviewer/pagesize"))))
     printer.setPageOrder(
         QPrinter.PageOrder(int(settings.value("UIPreviewer/pageorder"))))
     printer.setOrientation(QPrinter.Orientation(
         int(settings.value("UIPreviewer/orientation"))))
     printer.setColorMode(
         QPrinter.ColorMode(int(settings.value("UIPreviewer/colormode"))))
     
     printDialog = QPrintDialog(printer, self)
     if printDialog.exec_() == QDialog.Accepted:
         self.statusBar().showMessage(self.tr("Printing the image..."))
         self.__print(printer)
         
         settings.setValue("UIPreviewer/printername", printer.printerName())
         settings.setValue("UIPreviewer/pagesize", printer.pageSize())
         settings.setValue("UIPreviewer/pageorder", printer.pageOrder())
         settings.setValue("UIPreviewer/orientation", printer.orientation())
         settings.setValue("UIPreviewer/colormode", printer.colorMode())
     
     self.statusBar().showMessage(
         self.tr("Image sent to printer..."), 2000)