diff --git a/gramps/src/docgen/SvgDrawDoc.py b/gramps/src/docgen/SvgDrawDoc.py
new file mode 100644
index 000000000..3b7029f6b
--- /dev/null
+++ b/gramps/src/docgen/SvgDrawDoc.py
@@ -0,0 +1,129 @@
+#
+# Gramps - a GTK+/GNOME based genealogy program
+#
+# Copyright (C) 2000 Donald N. Allingham
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+import os
+import tempfile
+import string
+import Plugins
+import intl
+_ = intl.gettext
+
+from TextDoc import *
+from DrawDoc import *
+
+
+class SvgDrawDoc(DrawDoc):
+
+ def __init__(self,styles,type,orientation):
+ DrawDoc.__init__(self,styles,type,orientation)
+ self.f = None
+ self.filename = None
+ self.level = 0
+ self.time = "0000-00-00T00:00:00"
+ self.page = 0
+
+ def open(self,filename):
+ if filename[-4:] != ".svg":
+ self.root = filename
+ else:
+ self.root = filename[:-4]
+
+ def close(self):
+ pass
+
+ def start_paragraph(self,style_name):
+ pass
+
+ def end_paragraph(self):
+ pass
+
+ def write_text(self,text):
+ pass
+
+ def start_page(self,orientation=None):
+ self.page = self.page + 1
+ if self.page != 1:
+ name = "%s-%d.svg" % (self.root,self.page)
+ else:
+ name = "%s.svg" % self.root
+ self.f = open(name,"w")
+
+ self.f.write('\n')
+ self.f.write('\n')
+ self.f.write('\n')
+ self.f.close()
+
+ def draw_line(self,style,x1,y1,x2,y2):
+ self.f.write('\n')
+
+ def draw_box(self,style,text,x,y):
+ box_style = self.draw_styles[style]
+ para_name = box_style.get_paragraph_style()
+ p = self.style_list[para_name]
+
+ bh = box_style.get_height()
+ bw = box_style.get_width()
+ self.f.write('\n')
+ self.f.write('\n' % box_style.get_color())
+ if text != "":
+ font = p.get_font()
+ font_size = font.get_size()
+ lines = string.split(text,'\n')
+ nlines = len(lines)
+ mar = 10/28.35
+ fs = (font_size/28.35) * 1.2
+ center = y + (bh + fs)/2.0 + (fs*0.2)
+ ystart = center - (fs/2.0) * nlines
+ for i in range(nlines):
+ ypos = ystart + (i * fs)
+ self.f.write('')
+ self.f.write(lines[i])
+ self.f.write('\n')
+
+Plugins.register_draw_doc(_("SVG (Scalable Vector Graphics)"),SvgDrawDoc);