Exemplo n.º 1
0
        def write_image(cls, filename, scene):
            # export via svg to temp file then print that
            # NOTE: can't use NamedTemporaryFile with delete = True
            # (see https://bugs.python.org/issue14243)
            fd, tmpname = tempfile.mkstemp(suffix=".svg")
            os.close(fd)
            try:
                SvgFormat.write_image(tmpname, scene)
                with open(tmpname, "rb") as f:
                    svgcontents = f.read()
            finally:
                os.unlink(tmpname)

            svgrend = QtSvg.QSvgRenderer(QtCore.QByteArray(svgcontents))
            vbox = svgrend.viewBox()
            if not vbox.isValid():
                size = svgrend.defaultSize()
            else:
                size = vbox.size()
            writer = QtGui.QPdfWriter(filename)
            writer.setPageSizeMM(QtCore.QSizeF(size) * 0.282)
            painter = QtGui.QPainter(writer)
            svgrend.render(painter)
            painter.end()
            del svgrend
            del painter
Exemplo n.º 2
0
 def _get_buffer(size, filename):
     buffer = QtGui.QPdfWriter(filename)
     dpi = QApplication.desktop().logicalDpiX()
     buffer.setResolution(dpi)
     buffer.setPageMargins(QMarginsF(0, 0, 0, 0))
     buffer.setPageSizeMM(QtCore.QSizeF(size.width(), size.height()) / dpi * 25.4)
     return buffer
Exemplo n.º 3
0
 def _get_buffer(size, filename):
     buffer = QtGui.QPdfWriter(filename)
     dpi = int(QApplication.primaryScreen().logicalDotsPerInch())
     buffer.setResolution(dpi)
     buffer.setPageMargins(QMarginsF(0, 0, 0, 0))
     pagesize = QtCore.QSizeF(size.width(), size.height()) / dpi * 25.4
     buffer.setPageSize(
         QtGui.QPageSize(pagesize, QtGui.QPageSize.Millimeter))
     return buffer