def generate_odf(template_path, fields, output_path): """Generate document in output_path from input_path using fields.""" # Create document from template. document = odf_new_document_from_template(template_path) content = document.get_content() body = content.get_body() meta = document.get_part(ODF_META) # Set properties. meta.set_modification_date(datetime.today()) meta.set_creation_date(datetime.today()) meta.set_initial_creator(fields[DOCUMENT_CREATOR] if DOCUMENT_CREATOR in fields else MODULE_NAME) meta.set_editing_cycles(1) meta.set_generator(MODULE_NAME) # Now, set field values. Ignore non-text values for now. type = 'string' for field_name, value in fields.items(): field = body.get_user_field_decl(field_name) value_string = 'office:{0}-value'.format(type) field.set_attribute('office:value-type', type) field.set_attribute(value_string, value) field.set_attribute('office:value', value) # Now save document. #raise RuntimeError("Not implemented: {0} - {1} - {2}".format( # template_path, output_path, ':'.join([value_string, value]))) document.save(target=output_path, pretty=True)
from lpod.span import odf_create_span from lpod.template import stl_odf from lpod.vfs import vfs def get_namespace(homme=False): return {u"titre": u"Test de STL no 1", u"date": date.today().strftime(u"%d/%m/%Y"), u"homme": homme, u"genre": u"M." if homme else u"Mme", u"nom": u"Michu", u"enum1": {'label': u"Revenu", 'value': 1234.56}, u"enum2": {'label': u"Âge", 'value': 65}, u"couleur": u"rouge", u"gras": u"gras comme un moine", u"élément": odf_create_span(u"élément", style='T2')} if __name__ == '__main__': try: output = argv[1] except IndexError: print >>stderr, "Usage: %s <output document>" % argv[0] exit(1) document = odf_new_document_from_template('test_template.ott') stl_odf(document, get_namespace()) if vfs.exists(output): vfs.remove(output) document.save(output) print 'Document "%s" generated.' % output
from datetime import datetime from lpod import __version__, ODF_META from lpod.document import odf_new_document_from_template from lpod.datatype import Date, DateTime from lpod.variable import odf_create_user_field_get #from lpod.element import get_user_field_decl #lpod.element.odf_element method get_user_field_decl # Defining paths and files templatepath = './Test.ott' documentpath = './Test.odt' # Create the document object document = odf_new_document_from_template(templatepath) content = document.get_content() body = content.get_body() meta = document.get_part(ODF_META) # Set meta values meta.set_modification_date(datetime.today()) meta.set_creation_date(datetime.today()) meta.set_initial_creator("creator") meta.set_editing_cycles(1) meta.set_generator("Python") # Set the field contents...(To be done) fields = body.get_user_field_decl_list() print print "The list: "
def test_drawing_template(self): uri = '../templates/drawing.otg' self.assert_(odf_new_document_from_template(uri))
def test_presentation_template(self): uri = '../templates/presentation.otp' self.assert_(odf_new_document_from_template(uri))
def test_spreadsheet_template(self): uri = '../templates/spreadsheet.ots' self.assert_(odf_new_document_from_template(uri))
def test_text_template(self): uri = '../templates/text.ott' self.assert_(odf_new_document_from_template(uri))
u"date": date.today().strftime(u"%d/%m/%Y"), u"homme": homme, u"genre": u"M." if homme else u"Mme", u"nom": u"Michu", u"enum1": { 'label': u"Revenu", 'value': 1234.56 }, u"enum2": { 'label': u"Âge", 'value': 65 }, u"couleur": u"rouge", u"gras": u"gras comme un moine", u"élément": odf_create_span(u"élément", style='T2') } if __name__ == '__main__': try: output = argv[1] except IndexError: print >> stderr, "Usage: %s <output document>" % argv[0] exit(1) document = odf_new_document_from_template('test_template.ott') stl_odf(document, get_namespace()) if exists(output): remove(output) document.save(output) print 'Document "%s" generated.' % output