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
def _get_buffer(size, filename): buffer = QtSvg.QSvgGenerator() buffer.setResolution( int(QApplication.primaryScreen().logicalDotsPerInch())) buffer.setFileName(filename) buffer.setViewBox(QtCore.QRectF(0, 0, size.width(), size.height())) return buffer
def _get_buffer(size, filename): buffer = QtSvg.QSvgGenerator() buffer.setFileName(filename) buffer.setSize(QtCore.QSize(int(size.width()), int(size.height()))) return buffer
def _get_buffer(size, filename): buffer = QtSvg.QSvgGenerator() buffer.setResolution(QApplication.desktop().logicalDpiX()) buffer.setFileName(filename) buffer.setViewBox(QtCore.QRectF(0, 0, size.width(), size.height())) return buffer
def _get_buffer(size, filename): buffer = QtSvg.QSvgGenerator() buffer.setResolution(QApplication.desktop().logicalDpiX()) buffer.setFileName(filename) buffer.setSize(QtCore.QSize(int(size.width()), int(size.height()))) return buffer