예제 #1
0
def printPreview(obj, printer=None, parent=None):
    if printer is None:
        printer = QtPrintSupport.QPrinter(
            QtPrintSupport.QPrinter.PrinterResolution)

    # @TODO: check
    if parent is None:
        try:
            parent = obj.window()
        except AttributeError:
            parent = None

    dialog = QtWidgets.QPrintPreviewDialog(printer, parent)
    dialog.paintRequested.connect(coreprint)
    ret = dialog.exec_()

    # @WARNING: duplicate code
    ret = QtPrintSupport.QPrintDialog(printer, parent).exec_()
    if ret == QtWidgets.QDialog.Accepted:
        if isinstance(obj, (QtGui.QTextDocument, QtWidgets.QTextEdit)):
            obj.print_(printer)
        elif hasattr(object, 'model'):
            model = obj.model()
            doc = modelToTextDocument(model)
            obj.print_(printer)
        elif isinstance(obj, QtCore.QAbstractItemModel):
            doc = modelToTextDocument(obj)
            doc.print_(printer)
        else:
            coreprint(obj, printer)
예제 #2
0
 def print_figure(self):
     printer = QtPrintSupport.QPrinter(QtPrintSupport.QPrinter.HighResolution)
     printer.setOrientation(QtPrintSupport.QPrinter.Landscape)
     print_dlg = QtPrintSupport.QPrintDialog(printer)
     if print_dlg.exec_() == QtWidgets.QDialog.Accepted:
         painter = QtGui.QPainter(printer)
         page_size = printer.pageRect()
         pixmap = self.canvas.grab().scaled(page_size.width(), page_size.height(),
                                            QtCore.Qt.KeepAspectRatio)
         painter.drawPixmap(0, 0, pixmap)
         painter.end()
예제 #3
0
    def PDF(self, name=None):
        printer = QtPrintSupport.QPrinter()
        printer.setOutputFormat(printer.NativeFormat)
        if name:
            printer.setOutputFileName(name)
            self.text.document().print_(printer)
        else:

            dialog = QtPrintSupport.QPrintDialog(printer)
            dialog.setOption(dialog.PrintToFile)
            if dialog.exec_() == QtWidgets.QDialog.Accepted:
                self.text.document().print_(dialog.printer())
예제 #4
0
def printObject(obj, printer=None, parent=None):
    if printer is None:
        printer = QtPrintSupport.QPrinter(
            QtPrintSupport.QPrinter.PrinterResolution)
        # printer.setOutputFile(os.path.join(utils.default_workdir().
        #                                    'filename.pdf'))

    # @TODO: check
    if parent is None:
        try:
            parent = obj.window()
        except AttributeError:
            parent = None

    # dialog = QtPrintSupport.QPrintDialog(printer)
    # try:
    #     window = obj.window()
    # except AttributeError:
    #     window = = None
    # preview = QtWidgets.QPrintPreviewWidget(printer, window)
    # preview.paintRequested.connect(coreprint)
    # dialog.setOptionTabs([preview])
    # ret = d.exec_()

    ret = QtPrintSupport.QPrintDialog(printer, parent).exec_()
    if ret == QtWidgets.QDialog.Accepted:
        if isinstance(obj, (QtGui.QTextDocument, QtWidgets.QTextEdit)):
            obj.print_(printer)
        elif hasattr(obj, 'model'):
            model = obj.model()
            doc = modelToTextDocument(model)
            doc.print_(printer)
        elif isinstance(obj, QtCore.QAbstractItemModel):
            doc = modelToTextDocument(obj)
            doc.print_(printer)
        else:
            coreprint(obj, printer)
예제 #5
0
 def Print(self):
     dialog = QtPrintSupport.QPrintDialog()
     if dialog.exec_() == QtWidgets.QDialog.Accepted:
         self.text.document().print_(dialog.printer())