Exemplo n.º 1
1
 def _print(self):
     dialog = QPrintDialog(self)
     if dialog.exec_() != QPrintDialog.Accepted:
         return
     printer = dialog.printer()
     currentView = self.mainView.currentWidget()
     viewPrinter = ViewPrinter(printer, currentView)
     currentView.fitViewsForPrint(viewPrinter)
     viewPrinter.render()
Exemplo n.º 2
0
    def print(self):
        name = (self.dateEdit.text())
        date = QDate.currentDate().toString()
        pilot = self.lineEditPilote.text()
        html = ("""
                < html >
                < body >
                Hello
        world!
        <p>name is {}</p>
        <p> and the date is {}
        <p> pilot is {}
        </body>
            < / html >
                """).format(name, date, pilot)

        # create a QPrinter object for the printer the user later selects
        myPrinter = QPrinter()

        # let user select and configure a printer, saved in the object created above
        myDialog = QPrintDialog(myPrinter, self)

        # execute the print if the user clicked "Print"
        if myDialog.exec_():
            # create a QTextDocument in memory to hold our HTML
            myDocument = QTextDocument()

        # load the html into the document
        myDocument.setHtml(html)

        # send the html to the physical printer
        myDocument.print_(myPrinter)
Exemplo n.º 3
0
def print_buffer(ctx):
    """
    Opens a dialog to select the printer and prints the current buffer.
    """
    from ..application import WithoutAppEventFilter

    if version.min_qt_version < (5, 8):
        ctx.minibuffer.show_info(
            "print-buffer not supported, qt version >= 5.8 required")
        return

    def notif(ok):
        GLOBAL_OBJECTS.unref(printer)
        ctx.minibuffer.show_info(
            "print successful" if ok else "failed to print")

    printer = QPrinter()
    dlg = QPrintDialog(printer)
    with WithoutAppEventFilter():
        ok = dlg.exec_() == dlg.Accepted
    if ok:
        # printer must be kept around to avoid a crash.
        # it must be released in the notif callback
        GLOBAL_OBJECTS.ref(printer)
        ctx.minibuffer.show_info("printing...")
        ctx.buffer.print(printer, notif)
Exemplo n.º 4
0
    def impression(self):
        # Creation du printer
        printer = QPrinter()
        dialog = QPrintDialog(printer, self)
        if dialog.exec_() != QDialog.Accepted:
            return
        printer.setPageMargins(10, 10, 10, 10, QPrinter.Point)

        # Calcul le ratio de redimensionnement
        page_width = printer.pageRect().width()
        page_height = printer.pageRect().height()
        widget_width = self.rapport.width()
        widget_height = self.rapport.height()
        ratio = min(page_width / widget_width, page_height / widget_height)

        # Calcul du positionnement
        pos_x = max(0, (page_width - ratio * widget_width) / 2)
        pos_y = max(0, (page_height - ratio * widget_height) / 2)

        # Render le widget dans une image QPicture pour stocker
        # les directives de dessin
        picture = QPicture()
        widget_painter = QPainter(picture)
        widget_painter.scale(ratio, ratio)
        self.rapport.render(widget_painter)
        widget_painter.end()

        # Render la QPicture en utilisant le QPrinter
        picture_painter = QPainter()
        picture_painter.begin(printer)
        picture_painter.drawPicture(QPointF(pos_x, pos_y), picture)
        picture_painter.end()
Exemplo n.º 5
0
 def print_(self):
     ui = self._ui
     printer = self._printer
     printer.setDocName(ui.webView.title() or '')
     dialog = QPrintDialog(printer, self)
     if dialog.exec_() == QDialog.Accepted:
         ui.webView.print_(printer)
Exemplo n.º 6
0
    def printHandler(self):

        # Open printing dialog
        dialog = QPrintDialog()

        if dialog.exec_() == QDialog.Accepted:
            self.noteContentEdit.document().print_(dialog.printer())
Exemplo n.º 7
0
 def noview_pt(self):
     printer = QPrinter(QPrinter.HighResolution)
     printer.setFontEmbeddingEnabled(True)
     dialog = QPrintDialog(printer, self)
     if not dialog.exec_():
         return
     self.paintpic(printer)
Exemplo n.º 8
0
 def printDiagram(self):
     """
     Public slot called to print the diagram.
     """
     printer = QPrinter(mode=QPrinter.ScreenResolution)
     printer.setFullPage(True)
     if Preferences.getPrinter("ColorMode"):
         printer.setColorMode(QPrinter.Color)
     else:
         printer.setColorMode(QPrinter.GrayScale)
     if Preferences.getPrinter("FirstPageFirst"):
         printer.setPageOrder(QPrinter.FirstPageFirst)
     else:
         printer.setPageOrder(QPrinter.LastPageFirst)
     printer.setPageMargins(
         Preferences.getPrinter("LeftMargin") * 10,
         Preferences.getPrinter("TopMargin") * 10,
         Preferences.getPrinter("RightMargin") * 10,
         Preferences.getPrinter("BottomMargin") * 10,
         QPrinter.Millimeter
     )
     printerName = Preferences.getPrinter("PrinterName")
     if printerName:
         printer.setPrinterName(printerName)
     
     printDialog = QPrintDialog(printer, self)
     if printDialog.exec_():
         super(UMLGraphicsView, self).printDiagram(
             printer, self.diagramName)
Exemplo n.º 9
0
 def printViaHtml(self):
     htmltext = ""
     date = QDate.currentDate().toString(DATE_FORMAT)  # 获取当前时间
     patient = GetpatientInfo("李尼古", "男", "56岁", "内科", "113", "2", "955464",
                              "111745")
     htmltext += (
         "<p align=center><font size='16'>华中科技大学同济医学院附属协和医院</font></p>"
         "<p align=center><font size='18'><b>CT检查报告书</b></font></p>")
     htmltext += (
         "<p align=right><font size='4'>CT号:<u>{0}</u></font></p>").format(
             patient.CT_no)
     htmltext += ("<hr style='color:black'/>")
     htmltext += (
         "<p align=center><font size='4'>姓名:<u>{0}</u>&nbsp;性别:<u>{1}</u>&nbsp;"
         "年龄:<u>{2}</u>&nbsp;科别:<u>{3}</u>&nbsp;病房:<u>{4}</u>&nbsp;床号:<u>{5}</u>"
         "&nbsp;住院号:<u>{6}</u></font></p>").format(
             patient.name, patient.gender, patient.age, patient.ill_type,
             patient.ward, patient.bed_no, patient.hospital_no)
     htmltext += ("<p align=justify><font size='5'>&nbsp;&nbsp;左肺瘤第三次化疗"
                  "术后:左肺舌叶可见不规则型团块状软组织密度影,截面约为3.0×4.4cm,CT值约为28-45HU,左侧舌"
                  "叶支气管截断,邻近胸膜可见牵引征,肿块远端见小片状高密度影,左肺下叶外基底段胸膜下可见直"
                  "径约0.7cm小结节影,边界光整。纵隔内可见明显肿大淋巴结,最大者位于主肺动脉窗内,约为4.1×"
                  "3.5cm。扫描所及肝左叶可见点状低密度影,肝脏密度减低。</font></p>")
     htmltext += ("<p align=right><font size='4'>医师签名:</font></p>")
     htmltext += (
         "<p align=right><font size='4'>报告日期:{0}</font></p>").format(date)
     htmltext += (
         "<hr style='color:black'/><p align=left><font size='4'><b>(本报告仅供临床医生诊断参考)</b></font></p>"
     )
     dialog = QPrintDialog(self.printer, self)
     if dialog.exec_():
         document = QTextDocument()
         document.setHtml(htmltext)
         document.print_(self.printer)
Exemplo n.º 10
0
 def __printPdfRequested(self, frame):
     """
     Private slot to handle a print to PDF request.
     
     @param frame reference to the frame to be printed (QWebFrame)
     """
     printer = QPrinter(mode=QPrinter.HighResolution)
     if Preferences.getPrinter("ColorMode"):
         printer.setColorMode(QPrinter.Color)
     else:
         printer.setColorMode(QPrinter.GrayScale)
     printerName = Preferences.getPrinter("PrinterName")
     if printerName:
         printer.setPrinterName(printerName)
     printer.setOutputFormat(QPrinter.PdfFormat)
     name = frame.url().path().rsplit('/', 1)[-1]
     if name:
         name = name.rsplit('.', 1)[0]
         name += '.pdf'
         printer.setOutputFileName(name)
     
     printDialog = QPrintDialog(printer, self)
     if printDialog.exec_() == QDialog.Accepted:
         try:
             frame.print_(printer)
         except AttributeError:
             E5MessageBox.critical(
                 self,
                 self.tr("eric6 Web Browser"),
                 self.tr(
                     """<p>Printing is not available due to a bug in"""
                     """ PyQt5. Please upgrade.</p>"""))
             return
Exemplo n.º 11
0
    def __printRequested(self, frame):
        """
        Private slot to handle a print request.
        
        @param frame reference to the frame to be printed (QWebFrame)
        """
        printer = QPrinter(mode=QPrinter.HighResolution)
        if Preferences.getPrinter("ColorMode"):
            printer.setColorMode(QPrinter.Color)
        else:
            printer.setColorMode(QPrinter.GrayScale)
        if Preferences.getPrinter("FirstPageFirst"):
            printer.setPageOrder(QPrinter.FirstPageFirst)
        else:
            printer.setPageOrder(QPrinter.LastPageFirst)
        printer.setPageMargins(
            Preferences.getPrinter("LeftMargin") * 10,
            Preferences.getPrinter("TopMargin") * 10,
            Preferences.getPrinter("RightMargin") * 10,
            Preferences.getPrinter("BottomMargin") * 10, QPrinter.Millimeter)
        printerName = Preferences.getPrinter("PrinterName")
        if printerName:
            printer.setPrinterName(printerName)

        printDialog = QPrintDialog(printer, self)
        if printDialog.exec_() == QDialog.Accepted:
            try:
                frame.print_(printer)
            except AttributeError:
                E5MessageBox.critical(
                    self, self.tr("Pymakr Web Browser"),
                    self.tr("""<p>Printing is not available due to a bug in"""
                            """ PyQt5. Please upgrade.</p>"""))
                return
Exemplo n.º 12
0
    def __printPdfRequested(self, frame):
        """
        Private slot to handle a print to PDF request.
        
        @param frame reference to the frame to be printed (QWebFrame)
        """
        printer = QPrinter(mode=QPrinter.HighResolution)
        if Preferences.getPrinter("ColorMode"):
            printer.setColorMode(QPrinter.Color)
        else:
            printer.setColorMode(QPrinter.GrayScale)
        printerName = Preferences.getPrinter("PrinterName")
        if printerName:
            printer.setPrinterName(printerName)
        printer.setOutputFormat(QPrinter.PdfFormat)
        name = frame.url().path().rsplit('/', 1)[-1]
        if name:
            name = name.rsplit('.', 1)[0]
            name += '.pdf'
            printer.setOutputFileName(name)

        printDialog = QPrintDialog(printer, self)
        if printDialog.exec_() == QDialog.Accepted:
            try:
                frame.print_(printer)
            except AttributeError:
                E5MessageBox.critical(
                    self, self.tr("Pymakr Web Browser"),
                    self.tr("""<p>Printing is not available due to a bug in"""
                            """ PyQt5. Please upgrade.</p>"""))
                return
Exemplo n.º 13
0
 def printDialog(self):
     printer = QPrinter(QPrinter.HighResolution)
     printer.setFullPage(True)
     printer.setPageMargins(0, 0, 0, 0, QPrinter.Millimeter)
     dialog = QPrintDialog(printer, self)
     if dialog.exec_() == QPrintDialog.Accepted:
         self.textEdit.print_(printer)
Exemplo n.º 14
0
Arquivo: regist.py Projeto: sola4u/ncd
 def print_record(self,htmltxt):
     dialog = QPrintDialog(self.printer, self)
     if dialog.exec_():
         document = QTextDocument()
         document.setHtml(htmltxt)
         document.print_(self.printer)
     self.close()
Exemplo n.º 15
0
 def _printLabel(self):
     # self.label.setText(self.__args[5]) if self.label.setObjectName=='Item_Name'else self.label.setText('')
     dialog = QPrintDialog(self.__printer, self)  #choose printer
     if not dialog.exec_():
         return
     for o in self.__oL:  #set value to label
         # print(o.objectName())
         if o.objectName() == 'ItemCode':
             o.setText(self.__args[1])
         if o.objectName() == 'Barcode':
             o.setBarcode(self.__args[2])
         if o.objectName() == 'ItemBarcode':
             o.setText(self.__args[2])
         if o.objectName() == 'PLU':
             o.setText(self.__args[3])
         if o.objectName() == 'ItemName':
             o.setText(self.__args[4])
     # for s in self.__args:
     #     print(s)
     painter = QPainter(self.__printer)
     image = QPixmap()
     image = self.grab(
         QRect(QPoint(0, 0), QSize(self.size().width(),
                                   self.size().height())))  # /* 绘制窗口至画布 */
     rect = painter.viewport()
     size = image.size()
     size.scale(rect.size(), Qt.KeepAspectRatio)
     painter.setViewport(rect.x(), rect.y(), size.width(), size.height())
     painter.setWindow(image.rect())
     painter.drawPixmap(0, 0, image)
Exemplo n.º 16
0
    def printReciept(self, htmltext):
        dialog = QPrintDialog(self.printer, self)
        if dialog.exec_():
            document = QTextDocument()
            # print(self.printer.logicalDpiX())
            # print(self.printer.logicalDpiX() * (210 / 25.4))
            # print(self.printer.logicalDpiY())
            # print(self.printer.logicalDpiY() * (297 / 25.4))
            #A4
            # document.setPageSize(QSizeF(self.printer.logicalDpiX() * (210 / 25.4),self.printer.logicalDpiY() * (297 / 25.4)));
            #小票
            qsizeF = QSizeF(self.printer.logicalDpiX() * (257 / 25.4),
                            self.printer.logicalDpiY() * (125 / 25.4))
            # qsizeF = QSizeF(self.printer.logicalDpiX() * (215.90 / 25.4), self.printer.logicalDpiY() * (127.00 / 25.4));
            # qsizeF = QSizeF(self.printer.logicalDpiY() * (125 / 25.4),self.printer.logicalDpiX() * (257 / 25.4));
            self.printer.setPageSize(QPrinter.Custom)
            self.printer.setPaperName("小票2")
            paperSize = QSizeF(257, 125)
            self.printer.setPaperSize(paperSize, QPrinter.Millimeter)
            # self.printer.setPageSizeMM(qsizeF)

            document.setPageSize(qsizeF)
            # font = QFont();
            # font.setPointSize(6)
            # document.setDefaultFont(font);
            document.setHtml(htmltext)
            document.print_(self.printer)
Exemplo n.º 17
0
	def slotPrint(self):  
       # 新建一个QPrinter对象 
		printer=QPrinter()  
       # 创建一个QPrintDialog对象,参数为QPrinter对象 
		printDialog=QPrintDialog(printer,self)  

		'''
       判断打印对话框显示后用户是否单击“打印”按钮,若单击“打印”按钮,
       则相关打印属性可以通过创建QPrintDialog对象时使用的QPrinter对象获得,
       若用户单击“取消”按钮,则不执行后续的打印操作。 
		''' 		
		if printDialog.exec_():  
           # 创建一个QPainter对象,并指定绘图设备为一个QPrinter对象。
			painter=QPainter(printer)  
			# 获得QPainter对象的视口矩形
			rect=painter.viewport()  
			# 获得图像的大小
			size=self.image.size()  
			# 按照图形的比例大小重新设置视口矩形
			size.scale(rect.size(),Qt.KeepAspectRatio)  
			painter.setViewport(rect.x(),rect.y(),size.width(),size.height())  
			# 设置QPainter窗口大小为图像的大小
			painter.setWindow(self.image.rect()) 
			# 打印			
			painter.drawImage(0,0,self.image)  
Exemplo n.º 18
0
    def printDiagram(self):
        """
        Public slot called to print the diagram.
        """
        printer = QPrinter(mode=QPrinter.ScreenResolution)
        printer.setFullPage(True)
        if Preferences.getPrinter("ColorMode"):
            printer.setColorMode(QPrinter.Color)
        else:
            printer.setColorMode(QPrinter.GrayScale)
        if Preferences.getPrinter("FirstPageFirst"):
            printer.setPageOrder(QPrinter.FirstPageFirst)
        else:
            printer.setPageOrder(QPrinter.LastPageFirst)
        printer.setPageMargins(
            Preferences.getPrinter("LeftMargin") * 10,
            Preferences.getPrinter("TopMargin") * 10,
            Preferences.getPrinter("RightMargin") * 10,
            Preferences.getPrinter("BottomMargin") * 10, QPrinter.Millimeter)
        printerName = Preferences.getPrinter("PrinterName")
        if printerName:
            printer.setPrinterName(printerName)

        printDialog = QPrintDialog(printer, self)
        if printDialog.exec_():
            super(UMLGraphicsView, self).printDiagram(printer,
                                                      self.diagramName)
Exemplo n.º 19
0
    def slotPrint(self):
        # 新建一個QPrinter物件
        printer = QPrinter()
        # 建立一個QPrintDialog物件,參數為QPrinter物件
        printDialog = QPrintDialog(printer, self)
        '''
		判斷列印對話方塊顯示後是否點擊「列印」鈕,如果是,
		則相關列印屬性可以透過建立QPrintDialog物件時以QPrinter物件取得,
		若點擊「取消」鈕,則不執行後續的列印操作。 
		'''
        if printDialog.exec_():
            # 建立一個QPainter物件,並指定繪圖設備為一個QPrinter物件。
            painter = QPainter(printer)
            # 取得QPainter物件的視窗矩形
            rect = painter.viewport()
            # 取得圖形的大小
            size = self.image.size()
            # 依照圖形的比例大小重新設定視窗矩形
            size.scale(rect.size(), Qt.KeepAspectRatio)
            painter.setViewport(rect.x(), rect.y(), size.width(),
                                size.height())
            # 設定QPainter視窗大小為圖形的大小
            painter.setWindow(self.image.rect())
            # 列印
            painter.drawImage(0, 0, self.image)
Exemplo n.º 20
0
    def printImage(self):
        """
                Print image.
                """
        # create printer object and print output defined by the platform
        # the program is being run on.
        # QPrinter.NativeFormat is the default
        printer = QPrinter()
        printer.setOutputFormat(QPrinter.NativeFormat)

        # Create printer dialog to configure printer
        print_dialog = QPrintDialog(printer)

        # if the dialog is accepted by the user, begin printing
        if (print_dialog.exec_() == QPrintDialog.Accepted):
            # use QPainter to output a PDF file
            painter = QPainter()
            # begin painting device
            painter.begin(printer)
            # Set QRect to hold painter's current viewport, which
            # is the image_label
            rect = QRect(painter.viewport())
            # get the size of image_label and use it to set the size
            # of the viewport
            size = QSize(self.image_label.pixmap().size())
            size.scale(rect.size(), Qt.KeepAspectRatio)
            painter.setViewport(rect.x(), rect.y(), size.width(),
                                size.height())
            painter.setWindow(self.image_label.pixmap().rect())
            # scale the image_label to fit the rect source (0, 0)
            painter.drawPixmap(0, 0, self.image_label.pixmap())
            # end painting
            painter.end()
Exemplo n.º 21
0
    def printDocument(self, document):
        """
        this will print the document to the selected printer
        :param document: reference to the document
        :return: return true on print, false otherwise
        """
        # create the qprinter object
        printer = QPrinter(QPrinter.HighResolution)
        printer.setPageSize(QPrinter.A4)
        printer.setColorMode(QPrinter.Color)
        printer.setOutputFormat(QPrinter.NativeFormat)

        # create and run the print dialog
        print_dialog = QPrintDialog(printer)
        state = print_dialog.exec_()
        print(state)
        print(QDialog.Accepted)
        if state == QDialog.Accepted:
            # print if the user selected print
            logging.debug("User chose to print")
            document.print_(printer)
            return True

        # if the user selected not to print
        logging.warning("User chose NOT to print")
        return False
Exemplo n.º 22
0
    def print_file(self):
        printer = QPrinter(QPrinter.HighResolution)
        dialog = QPrintDialog(printer, self)

        if dialog.exec_() == QPrintDialog.Accepted:
            self.centralWidget().textEdit.print_(printer)
        pass
Exemplo n.º 23
0
 def printFile(self):
     print("printFile")
     printer = QPrinter()
     printDialog = QPrintDialog(printer, self)
     if QDialog.Accepted == printDialog.exec_():
         # 打印机选择完成后、调用QTextEdit的打印方法进行打印
         self.Text_dataFrame.print(printer)
Exemplo n.º 24
0
    def createPrintDialog(self):
        mylist = []

        printer = QPrinter(QPrinter.HighResolution)
        dialog = QPrintDialog(printer, self)

        if dialog.exec_() == QPrintDialog.Accepted:
            self.dashboard.label_welcome_username.print_(printer)
	def printInvoice(self):
		printer = QPrinter(QPrinter.HighResolution)
		dialog = QPrintDialog(printer, self)

		if dialog.exec_() == QPrintDialog.Accepted:
			self.ui.invoiceField.print_(printer)
			self.invoice_printed.emit()
			self.close()
Exemplo n.º 26
0
 def filePrint(self):
     """Show dialog and print tree output based on current options.
     """
     self.printer.setOutputFormat(QPrinter.NativeFormat)
     self.setupData()
     printDialog = QPrintDialog(self.printer, QApplication.activeWindow())
     if printDialog.exec_() == QDialog.Accepted:
         self.paintData(self.printer)
Exemplo n.º 27
0
 def printing(self):
     document = self.textEdit.document()
     printer = QPrinter()
     dlg = QPrintDialog(printer, self)
     if dlg.exec_() != QDialog.Accepted:
         return
     document.print_(printer)
     self.statusBar().showMessage("Ready", 2000)
Exemplo n.º 28
0
    def print_webpage(self):
        """Print the webpage to a printer.

        Callback for the print action.
        Should show a print dialog and print the webpage to the printer.
        """
        if self.print_settings.get("mode") == "high":
            printer = QPrinter(mode=QPrinter.HighResolution)
        else:
            printer = QPrinter(mode=QPrinter.ScreenResolution)

        if self.print_settings:
            if self.print_settings.get("size_unit"):
                try:
                    unit = getattr(
                        QPrinter,
                        self.print_settings.get("size_unit").capitalize()
                    )
                except NameError:
                    debug(
                        "Specified print size unit '{}' not found,"
                        "using default.".format(
                            self.print_settings.get("size_unit")
                        ))
                    unit = QPrinter.Millimeter
            else:
                unit = QPrinter.Millimeter

            margins = (
                list(self.print_settings.get("margins"))
                or list(printer.getPageMargins(unit))
            )
            margins += [unit]
            printer.setPageMargins(*margins)

            if self.print_settings.get("orientation") == "landscape":
                printer.setOrientation(QPrinter.Landscape)
            else:
                printer.setOrientation(QPrinter.Portrait)

            if self.print_settings.get("paper_size"):
                printer.setPaperSize(QSizeF(
                    *self.print_settings.get("paper_size")
                ), unit)

            if self.print_settings.get("resolution"):
                printer.setResolution(
                    int(self.print_settings.get("resolution"))
                )

        if not self.print_settings.get("silent"):
            print_dialog = QPrintDialog(printer, self)
            print_dialog.setWindowTitle("Print Page")
            if not print_dialog.exec_() == QDialog.Accepted:
                return False

        self.print_(printer)
        return True
Exemplo n.º 29
0
 def printdialog(self):
     '''
     打印机配置的对话框
     '''
     printdialog = QPrintDialog(self.printer,
                                self)  #QPrintDialog类提供了一个用于指定打印机配置的对话框
     if QDialog.Accepted == printdialog.exec_():
         self.tx.print(
             self.printer)  #选择好打印机后,点击打印,调用QTextEdit中的print方法进行相关的打印。
Exemplo n.º 30
0
 def _print(self):
     dialog = QPrintDialog(self)
     if dialog.exec_() != QPrintDialog.Accepted:
         return
     printer = dialog.printer()
     currentView = self.mainView.currentWidget()
     viewPrinter = ViewPrinter(printer, currentView)
     currentView.fitViewsForPrint(viewPrinter)
     viewPrinter.render()
Exemplo n.º 31
0
 def print_scheme(self):
     self.printer = QPrinter()
     printDialog = QPrintDialog(self.printer)
     if (printDialog.exec_() == QDialog.Accepted):
         painter = QPainter(self.printer)
         painter.setRenderHint(QPainter.Antialiasing)
         painter.setRenderHint(QPainter.TextAntialiasing)
         self.scene.clearSelection()
         self.scene.render(painter)
Exemplo n.º 32
0
    def _q_print(self):
        printDialog = QPrintDialog(self.printer, self)
        if printDialog.exec_() == QDialog.Accepted:
            if not importedQtWebEngine:
                self.preview.print_()
            else:
                self.webView.page().print(self.printer, self._dummy)

            self.accept()
Exemplo n.º 33
0
 def print_(self):
     dialog = QPrintDialog(self.printer)
     if dialog.exec_():
         painter = QPainter(self.printer)
         painter.setRenderHint(QPainter.Antialiasing)
         painter.setRenderHint(QPainter.TextAntialiasing)
         self.scene.clearSelection()
         self.removeBorders()
         self.scene.render(painter)
         self.addBorders()
Exemplo n.º 34
0
 def print_(self):
     dialog = QPrintDialog(self.printer, self)
     if dialog.exec_():
         painter = QPainter(self.printer)
         rect = painter.viewport()
         size = self.imageLabel.pixmap().size()
         size.scale(rect.size(), Qt.KeepAspectRatio)
         painter.setViewport(rect.x(), rect.y(), size.width(), size.height())
         painter.setWindow(self.imageLabel.pixmap().rect())
         painter.drawPixmap(0, 0, self.imageLabel.pixmap())
Exemplo n.º 35
0
 def print_(self):
     dialog = QPrintDialog(self.printer, self)
     if dialog.exec_():
         painter = QPainter(self.printer)
         rect = painter.viewport()
         size = self.imageLabel.pixmap().size()
         size.scale(rect.size(), Qt.KeepAspectRatio)
         painter.setViewport(rect.x(), rect.y(), size.width(), size.height())
         painter.setWindow(self.imageLabel.pixmap().rect())
         painter.drawPixmap(0, 0, self.imageLabel.pixmap())
Exemplo n.º 36
0
    def printText(self):
        document = self.text.document()
        printer = QPrinter()

        dlg = QPrintDialog(printer, self)
        if dlg.exec_() != QtWidgets.QDialog.Accepted:
            return

        document.print_(printer)

        self.statusBar().showMessage("打印成功", 2000)
Exemplo n.º 37
0
    def print_(self):
        document = self.textEdit.document()
        printer = QPrinter()

        dlg = QPrintDialog(printer, self)
        if dlg.exec_() != QDialog.Accepted:
            return

        document.print_(printer)

        self.statusBar().showMessage("Ready", 2000)
Exemplo n.º 38
0
 def print_(self):
     printer = QPrinter()
     dlg = QPrintDialog(printer, self)
     dlg.setWindowTitle(app.caption(_("Print")))
     options = (QAbstractPrintDialog.PrintToFile
                | QAbstractPrintDialog.PrintShowPageSize
                | QAbstractPrintDialog.PrintPageRange)
     if self.browser.textCursor().hasSelection():
         options |= QAbstractPrintDialog.PrintSelection
     dlg.setOptions(options)
     if dlg.exec_():
         self.browser.print_(printer)
Exemplo n.º 39
0
    def slot_canvasPrint(self):
        self.scene.clearSelection()
        self.fExportPrinter = QPrinter()
        dialog = QPrintDialog(self.fExportPrinter, self)

        if dialog.exec_():
            painter = QPainter(self.fExportPrinter)
            painter.save()
            painter.setRenderHint(QPainter.Antialiasing)
            painter.setRenderHint(QPainter.TextAntialiasing)
            self.scene.render(painter)
            painter.restore()
Exemplo n.º 40
0
 def print_img(self):
     dialog = QPrintDialog(self.printer, self)
     if dialog.exec_():
         painter = QPainter(self.printer)
         rect = painter.viewport()
         if self.pixmap.width() > self.pixmap.height():
             self.pixmap = self.pixmap.transformed(QTransform().rotate(90))
         size = self.pixmap.size()
         size.scale(rect.size(), Qt.KeepAspectRatio)
         painter.setViewport(rect.x(), rect.y(), size.width(), size.height())
         painter.setWindow(self.pixmap.rect())
         painter.drawPixmap(0, 0, self.pixmap)
Exemplo n.º 41
0
    def print(self):
        print("controller.print")
        editor = self.ui.webView
        printer = QPrinter()

        #print(printer, self)
        dialog = QPrintDialog(printer, self)
        dialog.setWindowTitle("Print Document")

        if dialog.exec_() != QDialog.Accepted:
            return

        editor.print_(printer)
Exemplo n.º 42
0
    def filePrint(self):
        printer = QPrinter(QPrinter.HighResolution)
        dlg = QPrintDialog(printer, self)

        if self.textEdit.textCursor().hasSelection():
            dlg.addEnabledOption(QPrintDialog.PrintSelection)

        dlg.setWindowTitle("Print Document")

        if dlg.exec_() == QPrintDialog.Accepted:
            self.textEdit.print_(printer)

        del dlg
Exemplo n.º 43
0
    def print_(self):
        printer = QPrinter(QPrinter.HighResolution)

        printDialog = QPrintDialog(printer, self)
        if printDialog.exec_() == QPrintDialog.Accepted:
            painter = QPainter(printer)
            rect = painter.viewport()
            size = self.image.size()
            size.scale(rect.size(), Qt.KeepAspectRatio)
            painter.setViewport(rect.x(), rect.y(), size.width(), size.height())
            painter.setWindow(self.image.rect())
            painter.drawImage(0, 0, self.image)
            painter.end()
Exemplo n.º 44
0
 def print_file(self):
     dialog = QPrintDialog(self.printer, self)
     if dialog.exec_():
         painter = QPainter(self.printer)
         rect = painter.viewport()
         # auto landscape or portrait printing depending on picture
         if self.qpixmap_pixel.width() > self.qpixmap_pixel.height():
             self.qpixmap_pixel = self.qpixmap_pixel.transformed(QTransform().rotate(90))
         size = self.qpixmap_pixel.size()
         size.scale(rect.size(), Qt.KeepAspectRatio)
         painter.setViewport(rect.x(), rect.y(), size.width(),
                             size.height())
         painter.setWindow(self.qpixmap_pixel.rect())
         painter.drawPixmap(0, 0, self.qpixmap_pixel)
Exemplo n.º 45
0
 def printFile(self):
     editor = self.solvers.currentWidget()
     
     if type(editor) == QTextEdit:
         printer = QPrinter()
         dialog = QPrintDialog(printer, self)
         dialog.setWindowTitle("Print Document")
         if dialog.exec_() != QDialog.Accepted:
             return
         editor.print_(printer)
     else:
         answer = QMessageBox.warning(self, "Not Print Image",
             "Dont print graph.",
             QMessageBox.Ok)
Exemplo n.º 46
0
    def printFile(self):
        editor = self.letters.currentWidget()
        printer = QPrinter()

        dialog = QPrintDialog(printer, self)
        dialog.setWindowTitle("Print Document")

        if editor.textCursor().hasSelection():
            dialog.addEnabledOption(QAbstractPrintDialog.PrintSelection)

        if dialog.exec_() != QDialog.Accepted:
            return

        editor.print_(printer)
Exemplo n.º 47
0
 def __printDiagram(self):
     """
     Private slot called to print the diagram.
     """
     printer = QPrinter(mode=QPrinter.ScreenResolution)
     printer.setFullPage(True)
     if Preferences.getPrinter("ColorMode"):
         printer.setColorMode(QPrinter.Color)
     else:
         printer.setColorMode(QPrinter.GrayScale)
     if Preferences.getPrinter("FirstPageFirst"):
         printer.setPageOrder(QPrinter.FirstPageFirst)
     else:
         printer.setPageOrder(QPrinter.LastPageFirst)
     printer.setPrinterName(Preferences.getPrinter("PrinterName"))
     
     printDialog = QPrintDialog(printer, self)
     if printDialog.exec_():
         self.__print(printer)
Exemplo n.º 48
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)
Exemplo n.º 49
0
    def show_dialog(self) -> None:
        """Print with a QPrintDialog."""
        self.check_printer_support()

        def print_callback(ok: bool) -> None:
            """Called when printing finished."""
            if not ok:
                message.error("Printing failed!")
            diag.deleteLater()

        def do_print() -> None:
            """Called when the dialog was closed."""
            self.to_printer(diag.printer(), print_callback)

        diag = QPrintDialog(self._tab)
        if utils.is_mac:
            # For some reason we get a segfault when using open() on macOS
            ret = diag.exec_()
            if ret == QDialog.Accepted:
                do_print()
        else:
            diag.open(do_print)
Exemplo n.º 50
0
 def __printRequested(self, frame):
     """
     Private slot to handle a print request.
     
     @param frame reference to the frame to be printed (QWebFrame)
     """
     printer = QPrinter(mode=QPrinter.HighResolution)
     if Preferences.getPrinter("ColorMode"):
         printer.setColorMode(QPrinter.Color)
     else:
         printer.setColorMode(QPrinter.GrayScale)
     if Preferences.getPrinter("FirstPageFirst"):
         printer.setPageOrder(QPrinter.FirstPageFirst)
     else:
         printer.setPageOrder(QPrinter.LastPageFirst)
     printer.setPageMargins(
         Preferences.getPrinter("LeftMargin") * 10,
         Preferences.getPrinter("TopMargin") * 10,
         Preferences.getPrinter("RightMargin") * 10,
         Preferences.getPrinter("BottomMargin") * 10,
         QPrinter.Millimeter
     )
     printerName = Preferences.getPrinter("PrinterName")
     if printerName:
         printer.setPrinterName(printerName)
     
     printDialog = QPrintDialog(printer, self)
     if printDialog.exec_() == QDialog.Accepted:
         try:
             frame.print_(printer)
         except AttributeError:
             E5MessageBox.critical(
                 self,
                 self.tr("eric6 Web Browser"),
                 self.tr(
                     """<p>Printing is not available due to a bug in"""
                     """ PyQt5. Please upgrade.</p>"""))
             return
Exemplo n.º 51
0
 def printSource(self):
     cursor = self.textCursor()
     try:
         printer = self._sourcePrinter
     except AttributeError:
         printer = self._sourcePrinter = QPrinter()
     else:
         printer.setCopyCount(1)
     dlg = QPrintDialog(printer, self)
     dlg.setWindowTitle(app.caption(_("dialog title", "Print Source")))
     options = QAbstractPrintDialog.PrintToFile | QAbstractPrintDialog.PrintShowPageSize
     if cursor.hasSelection():
         options |= QAbstractPrintDialog.PrintSelection
     dlg.setOptions(options)
     if dlg.exec_():
         if dlg.printRange() != QAbstractPrintDialog.Selection:
             cursor.clearSelection()
         number_lines = QSettings().value("source_export/number_lines", False, bool)
         doc = highlighter.html_copy(cursor, 'printer', number_lines)
         doc.setMetaInformation(QTextDocument.DocumentTitle, self.currentDocument().url().toString())
         font = doc.defaultFont()
         font.setPointSizeF(font.pointSizeF() * 0.8)
         doc.setDefaultFont(font)
         doc.print_(printer)
Exemplo n.º 52
0
    def printImage(self):
        if self.model.rowCount(QModelIndex()) * self.model.columnCount(QModelIndex()) > 90000:
            answer = QMessageBox.question(self, "Large Image Size",
                    "The printed image may be very large. Are you sure that "
                    "you want to print it?",
                    QMessageBox.Yes | QMessageBox.No)
            if answer == QMessageBox.No:
                return

        printer = QPrinter(QPrinter.HighResolution)

        dlg = QPrintDialog(printer, self)
        dlg.setWindowTitle("Print Image")

        if dlg.exec_() != QDialog.Accepted:
            return

        painter = QPainter()
        painter.begin(printer)

        rows = self.model.rowCount(QModelIndex())
        columns = self.model.columnCount(QModelIndex())
        sourceWidth = (columns+1) * ItemSize
        sourceHeight = (rows+1) * ItemSize

        painter.save()

        xscale = printer.pageRect().width() / float(sourceWidth)
        yscale = printer.pageRect().height() / float(sourceHeight)
        scale = min(xscale, yscale)

        painter.translate(printer.paperRect().x()+printer.pageRect().width()/2,
                          printer.paperRect().y()+printer.pageRect().height()/2)
        painter.scale(scale, scale)
        painter.translate(-sourceWidth/2, -sourceHeight/2)

        option = QStyleOptionViewItem()
        parent = QModelIndex()

        progress = QProgressDialog("Printing...", "Cancel", 0, rows, self)
        progress.setWindowModality(Qt.ApplicationModal)
        y = ItemSize / 2.0

        for row in range(rows):
            progress.setValue(row)
            QApplication.processEvents()
            if progress.wasCanceled():
                break

            x = ItemSize / 2.0

            for column in range(columns):
                option.rect = QRect(x, y, ItemSize, ItemSize)
                self.view.itemDelegate().paint(painter, option,
                        self.model.index(row, column, parent))
                x += ItemSize

            y += ItemSize

        progress.setValue(rows)

        painter.restore()
        painter.end()

        if progress.wasCanceled():
            QMessageBox.information(self, "Printing canceled",
                    "The printing process was canceled.", QMessageBox.Cancel)
Exemplo n.º 53
0
 def _q_print(self):
     printDialog = QPrintDialog(self.printer, self)
     if printDialog.exec_() == QDialog.Accepted:
         self.preview.print_()
         self.accept()
Exemplo n.º 54
0
def print_(doc, filename=None, widget=None):
    """Prints the popplerqt5.Poppler.Document.
    
    The filename is used in the dialog and print job name.
    If the filename is not given, it defaults to a translation of "PDF Document".
    The widget is a widget to use as parent for the print dialog etc.
    
    """
    # Decide how we will print.
    # on Windows and Mac OS X a print command must be specified, otherwise
    # we'll use raster printing
    s = QSettings()
    s.beginGroup("helper_applications")
    cmd = s.value("printcommand", "", str)
    use_dialog = s.value("printcommand/dialog", False, bool)
    resolution = s.value("printcommand/dpi", 300, int)
    linux_lpr = False
    
    if os.name != 'nt' and not sys.platform.startswith('darwin'):
        # we're probably on Linux
        if not cmd:
            cmd = fileprinter.lprCommand()
            if cmd:
                linux_lpr = True
        elif cmd.split('/')[-1] in fileprinter.lpr_commands:
            linux_lpr = True

    print_file = filename
    title = os.path.basename(filename) if filename else _("PDF Document")
    
    if widget:
        try:
            printer = _printers[widget]
        except KeyError:
            printer = _printers[widget] = QPrinter()
        else:
            printer.setCopyCount(1)
    else:
        printer = QPrinter()
    
    printer.setDocName(title)
    printer.setPrintRange(QPrinter.AllPages)
    
    if linux_lpr or use_dialog or not cmd:
        dlg = QPrintDialog(printer, widget)
        dlg.setMinMax(1, doc.numPages())
        dlg.setOption(QPrintDialog.PrintToFile, False)
        dlg.setWindowTitle(app.caption(_("Print {filename}").format(filename=title)))
        
        result = dlg.exec_()
        if widget:
            dlg.deleteLater() # because it has a parent
        if not result:
            return # cancelled
    
    if linux_lpr or '$ps' in cmd:
        # make a PostScript file with the desired paper size
        ps = QTemporaryFile()
        if ps.open() and qpopplerview.printer.psfile(doc, printer, ps):
            ps.close()
            print_file = ps.fileName()
    elif cmd:
        if printer.printRange() != QPrinter.AllPages:
            cmd = None # we can't cut out pages from a PDF file
        elif '$pdf' not in cmd:
            cmd += ' $pdf'
    
    command = []
    if linux_lpr:
        # let all converted pages print
        printer.setPrintRange(QPrinter.AllPages)
        command = fileprinter.printCommand(cmd, printer, ps.fileName())
    elif cmd and print_file:
        for arg in helpers.shell_split(cmd):
            if arg in ('$ps', '$pdf'):
                command.append(print_file)
            else:
                arg = arg.replace('$printer', printer.printerName())
                command.append(arg)
    if command:
        if subprocess.call(command):
            QMessageBox.warning(widget, _("Printing Error"),
                _("Could not send the document to the printer."))
        return
    else:
        # Fall back printing of rendered raster images.
        # It is unsure if the Poppler ArthurBackend ever will be ready for
        # good rendering directly to a painter, so we'll fall back to using
        # raster images.
        
        p = Printer()
        p.setDocument(doc)
        p.setPrinter(printer)
        p.setResolution(resolution)
        
        d = QProgressDialog()
        d.setModal(True)
        d.setMinimumDuration(0)
        d.setRange(0, len(p.pageList()) + 1)
        d.canceled.connect(p.abort)
        
        def progress(num, total, page):
            d.setValue(num)
            d.setLabelText(_("Printing page {page} ({num} of {total})...").format(
                page=page, num=num, total=total))
                
        def finished():
            p.deleteLater()
            d.deleteLater()
            d.hide()
            if not p.success and not p.aborted():
                QMessageBox.warning(widget, _("Printing Error"),
                    _("Could not send the document to the printer."))
            
        p.finished.connect(finished)
        p.printing.connect(progress)
        p.start()
Exemplo n.º 55
0
 def onPrint(self):
     #
     printer = QPrinter()
     dlg = QPrintDialog(printer, parent=self)
     if dlg.exec_() == dlg.Accepted:
         self.hbrowser.print_(dlg.printer())
Exemplo n.º 56
0
    def print_webpage(self):
        """Print the webpage to a printer.

        Callback for the print action.
        Should show a print dialog and print the webpage to the printer.
        """
        print_settings = self.config.get("print_settings", {})

        if print_settings.get("mode") == "high":
            printer = QPrinter(mode=QPrinter.HighResolution)
        else:
            printer = QPrinter(mode=QPrinter.ScreenResolution)

        # set which printer
        # FIXME: This isn't documented, because it doesn't seem to work...
        if print_settings.get("printer_name"):
            debug(
                "Setting printer to: {}".format(
                    print_settings.get("printer_name"))
            )
            printer.setPrinterName(print_settings.get("printer_name"))
            debug("Printer is now: {}".format(printer.printerName()))

        # Set the units
        unit_name = print_settings.get("size_unit", 'Millimeter').title()
        try:
            unit = getattr(QPrinter, unit_name)
        except AttributeError:
            debug(
                "Specified print size unit '{}' not found, using default."
                .format(unit_name)
            )
            unit = QPrinter.Millimeter

        # Set the margins
        margins = list(
            print_settings.get("margins", printer.getPageMargins(unit))
        )
        margins.append(unit)
        printer.setPageMargins(*margins)

        # Set the Orientation
        orientation = print_settings.get("orientation", 'Portrait').title()
        printer.setOrientation(
            getattr(QPrinter, orientation, QPrinter.Portrait)
        )

        # Set the paper size
        paper_size = print_settings.get("paper_size")
        if type(paper_size) in (list, tuple):
            # Assume it's a width/height spec
            printer.setPaperSize(QSizeF(*paper_size), unit)
        elif paper_size is not None:  # Assume it's a size name
            printer.setPaperSize(getattr(QPrinter, paper_size, 'AnsiA'))
        # If paper_size is None, we just leave it at the printer's default

        # Set the resolution
        resolution = print_settings.get("resolution")
        if resolution:
            printer.setResolution(int(resolution))

        # Show a print dialog, unless we want silent printing
        if not print_settings.get("silent"):
            print_dialog = QPrintDialog(printer, self)
            print_dialog.setWindowTitle("Print Page")
            if not print_dialog.exec_() == QDialog.Accepted:
                return False

        self.print_(printer)
        return True
Exemplo n.º 57
0
 def slotPrint(self):
     printer = QPrinter()
     dlg = QPrintDialog(printer, self)
     dlg.setWindowTitle(app.caption(_("Print")))
     if dlg.exec_():
         self.webview.print_(printer)