def writeToFile(self, outfile): """write svg image to file. """ self.finalizePlot() self.mRoot = SVGdraw.drawing() self.mDraw = SVGdraw.svg( (0, 0, self.mPageWidth, self.mPageHeight), "100%", "100%") kk = self.mElements.keys() kk.sort() kk.reverse() for k in kk: for e in self.mElements[k]: self.mDraw.addElement(e) self.mRoot.setSVG(self.mDraw) tfile = tempfile.mktemp() self.mRoot.toXml(tfile) lines = open(tfile, "r").readlines() outfile.write(string.join(lines, "")) outfile.write("\n") os.remove(tfile)
def writeToFile(self, outfile): """write svg image to file. """ self.finalizePlot() self.mRoot = SVGdraw.drawing() self.mDraw = SVGdraw.svg((0, 0, self.mPageWidth, self.mPageHeight), "100%", "100%") kk = self.mElements.keys() kk.sort() kk.reverse() for k in kk: for e in self.mElements[k]: self.mDraw.addElement(e) self.mRoot.setSVG(self.mDraw) tfile = tempfile.mktemp() self.mRoot.toXml(tfile) lines = open(tfile, "r").readlines() outfile.write(string.join(lines, "")) outfile.write("\n") os.remove(tfile)
def writeToFile(self, outfile): """write svg image to file. """ self.finalizePlot() kk = self.mElements.keys() kk.sort() kk.reverse() # make sure the image size is ok min_x, min_y, max_x, max_y = 0, 0, 0, 0 for k in kk: for e in self.mElements[k]: for x in ('x', 'x2', 'x1'): if x in e.attributes: v = e.attributes[x] min_x = min(min_x, v) max_x = max(max_x, v) for y in ('y', 'y2', 'y1'): if y in e.attributes: v = e.attributes[y] min_y = min(min_y, v) max_y = max(max_y, v) min_x, min_y = int(math.floor(min_x)), int(math.floor(min_y)) max_x, max_y = int(math.floor(max_x)), int(math.floor(max_y)) for k in kk: for e in self.mElements[k]: for x in ('x', 'x2', 'x1'): if x in e.attributes: e.attributes[x] -= min_x for x in ('y', 'y2', 'y1'): if y in e.attributes: e.attributes[y] -= min_y # now add all the elements self.mRoot = SVGdraw.drawing() self.mDraw = SVGdraw.svg( (0, 0, self.mPageWidth - min_x, self.mPageHeight - min_y), "100%", "100%") for k in kk: for e in self.mElements[k]: self.mDraw.addElement(e) self.mRoot.setSVG(self.mDraw) tfile = tempfile.mktemp() self.mRoot.toXml(tfile) lines = open(tfile, "r").readlines() outfile.write(string.join(lines, "")) outfile.write("\n") os.remove(tfile)