diff --git a/src/docgen/AbiWord2Doc.py b/src/docgen/AbiWord2Doc.py
index 2c1a8d274..57c0f2303 100644
--- a/src/docgen/AbiWord2Doc.py
+++ b/src/docgen/AbiWord2Doc.py
@@ -232,9 +232,11 @@ class AbiWordDoc(BaseDoc.BaseDoc):
elif format == 0:
for line in text.split('\n\n'):
self.start_paragraph(style_name)
+ self.f.write('')
line = line.replace('\n',' ')
line = string.join(string.split(line))
self.write_text(line)
+ self.f.write('')
self.end_paragraph()
def write_text(self,text):
@@ -295,4 +297,4 @@ class AbiWordDoc(BaseDoc.BaseDoc):
def end_cell(self):
self.f.write('\n')
-Plugins.register_text_doc(_("AbiWord (version 1.9 or greater)"),AbiWordDoc,1,1,1,".abw")
+Plugins.register_text_doc(_("AbiWord"),AbiWordDoc,1,1,1,".abw")
diff --git a/src/docgen/AbiWordDoc.py b/src/docgen/AbiWordDoc.py
deleted file mode 100644
index 29e2b276c..000000000
--- a/src/docgen/AbiWordDoc.py
+++ /dev/null
@@ -1,359 +0,0 @@
-#
-# Gramps - a GTK+/GNOME based genealogy program
-#
-# Copyright (C) 2000-2003 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
-#
-
-# $Id$
-
-"""
-Provides a BaseDoc based interface to the AbiWord document format.
-"""
-
-#-------------------------------------------------------------------------
-#
-# Imported Modules
-#
-#-------------------------------------------------------------------------
-import os
-import base64
-import string
-
-import BaseDoc
-from latin_utf8 import latin_to_utf8
-import string
-import Plugins
-import ImgManip
-import Errors
-from gettext import gettext as _
-
-#-------------------------------------------------------------------------
-#
-# Class Definitions
-#
-#-------------------------------------------------------------------------
-class AbiWordDoc(BaseDoc.BaseDoc):
- """AbiWord document generator. Inherits from the BaseDoc generic
- document interface class."""
-
- def __init__(self,styles,type,template,orientation):
- """Initializes the AbiWordDoc class, calling the __init__ routine
- of the parent BaseDoc class"""
- BaseDoc.BaseDoc.__init__(self,styles,type,template,orientation)
- self.f = None
- self.level = 0
- self.new_page = 0
- self.in_table = 0
-
- def open(self,filename):
- """Opens the document, writing the necessary header information.
- AbiWord uses an XML format, so the document format is pretty easy
- to understand"""
- if filename[-4:] != ".abw":
- self.filename = "%s.abw" % filename
- else:
- self.filename = filename
-
- try:
- self.f = open(self.filename,"w")
- except IOError,msg:
- errmsg = "%s\n%s" % (_("Could not create %s") % self.filename, msg)
- raise Errors.ReportError(errmsg)
- except:
- raise Errors.ReportError(_("Could not create %s") % self.filename)
-
- self.f.write('\n')
- self.f.write('\n')
- self.f.write('\n')
- self.f.write('\n')
- self.f.write('\n')
-
- def close(self):
- """Write the trailing information and closes the file"""
- self.f.write('\n')
- if len(self.photo_list) > 0:
- self.f.write('\n')
- for file_tuple in self.photo_list:
- file = file_tuple[0]
- base = "%s/%s_png" % (os.path.dirname(file),
- os.path.basename(file))
- tag = string.replace(base,'.','_')
-
- img = ImgManip.ImgManip(file)
- buf = img.png_data()
-
- self.f.write('\n')
- self.f.write(base64.encodestring(buf))
- self.f.write('\n')
- self.f.write('\n')
-
- self.f.write('\n')
- self.f.close()
-
- def add_photo(self,name,pos,x_cm,y_cm):
-
- try:
- image = ImgManip.ImgManip(name)
- except:
- return
- (x,y) = image.size()
- aspect_ratio = float(x)/float(y)
-
- if aspect_ratio > x_cm/y_cm:
- act_width = x_cm
- act_height = y_cm/aspect_ratio
- else:
- act_height = y_cm
- act_width = x_cm*aspect_ratio
-
- self.photo_list.append((name,act_width,act_height))
-
- base = "/tmp/%s.png" % os.path.basename(name)
- tag = string.replace(base,'.','_')
-
- self.f.write('' % act_height)
-
- def start_superscript(self):
- self.text = self.text + ''
-
- def end_superscript(self):
- self.text = self.text + ''
-
- def start_paragraph(self,style_name,leader=None):
- if self.in_table:
- self.start_paragraph_intable(style_name,leader)
- else:
- self.start_paragraph_notable(style_name,leader)
-
- def start_paragraph_notable(self,style_name,leader=None):
- style = self.style_list[style_name]
- self.current_style = style
- self.f.write('
')
- font = style.get_font()
- self.f.write('')
- if self.new_page == 1:
- self.new_page = 0
- self.f.write('')
- if leader != None:
- self.f.write(leader)
- self.f.write('\t')
-
- def start_paragraph_intable(self,style_name,leader=None):
- style = self.style_list[style_name]
- self.current_style = style
- font = style.get_font()
- self.cdata = ''
- if self.new_page == 1:
- self.new_page = 0
- self.f.write('')
-
- def page_break(self):
- self.new_page = 1
-
- def end_paragraph(self):
- if self.in_table:
- self.cdata = self.cdata + '\t'
- else:
- self.f.write('
\n')
-
- def write_note(self,text,format,style_name):
- if format == 1:
- self.start_paragraph(style_name)
- self.write_text(text)
- self.end_paragraph()
- elif format == 0:
- for line in text.split('\n\n'):
- self.start_paragraph(style_name)
- line = line.replace('\n',' ')
- line = string.join(string.split(line))
- self.write_text(line)
- self.end_paragraph()
-
- def write_text(self,text):
- text = text.replace('&','&'); # Must be first
- text = text.replace('<','<');
- text = text.replace('>','>');
- text = text.replace('<super>','')
- text = text.replace('</super>','')
- if self.in_table:
- self.cdata = self.cdata + text
- else:
- self.f.write(text)
-
- def start_bold(self):
- font = self.current_style.get_font()
- self.f.write('')
-
- def end_bold(self):
- font = self.current_style.get_font()
- self.f.write('')
-
- def start_table(self,name,style_name):
- self.in_table = 1
- self.tblstyle = self.table_styles[style_name]
-
- def end_table(self):
- self.in_table = 0
-
- def start_row(self):
- self.tabs = []
- self.ledge = 0.0
- self.col = 0
- self.cdatalist = []
-
- def end_row(self):
- first = 0
- self.f.write(' 0:
- self.f.write(' props="tabstops:')
- for val,t in self.tabs:
- if val == oldv:
- if t == 'B0':
- useb = 1
- continue
- oldv = val
- if not first:
- first = 1
- else:
- self.f.write(',')
- edge = (val * self.get_usable_width())
-
- if val == 1.0:
- edge = edge-0.1
- elif val == 0.0:
- edge = edge+0.1
- if useb:
- t = 'B0'
- self.f.write("%6.4fin/%s" % (edge/2.54,t))
- self.f.write('"')
- self.f.write('>')
- for data in self.cdatalist:
- self.f.write(data)
- self.f.write('
\n')
-
- def start_cell(self,style_name,span=1):
- self.cstyle = self.cell_styles[style_name]
- for i in range(self.col,self.col+span):
- self.col = self.col + 1
- self.ledge = self.ledge + self.tblstyle.get_column_width(i)
- self.tabs.append((self.ledge/100.0,"L"))
-
- def end_cell(self):
- self.cdata = self.cdata + ""
- self.cdatalist.append(self.cdata)
-
-Plugins.register_text_doc(_("AbiWord (version 1.0.x)"),AbiWordDoc,1,1,1,".abw")
diff --git a/src/docgen/OpenOfficeDoc.py b/src/docgen/OpenOfficeDoc.py
index 704a03e18..33a65b090 100644
--- a/src/docgen/OpenOfficeDoc.py
+++ b/src/docgen/OpenOfficeDoc.py
@@ -112,6 +112,8 @@ class OpenOfficeDoc(BaseDoc.BaseDoc):
self.f.write('office:class="text" office:version="0.9">\n')
self.f.write('\n')
self.f.write('\n')
+ self.f.write('\n')
self.f.write('')
self.f.write('')
self.f.write('\n')
+ self.f.write('')
+ self.f.write('')
+ self.f.write('\n')
for style_name in self.draw_styles.keys():
style = self.draw_styles[style_name]
@@ -686,9 +691,11 @@ class OpenOfficeDoc(BaseDoc.BaseDoc):
elif format == 0:
for line in text.split('\n\n'):
self.start_paragraph(style_name)
+ self.f.write('')
line = line.replace('\n',' ')
line = string.join(string.split(line))
self.write_text(line)
+ self.f.write('')
self.end_paragraph()
def write_text(self,text):