def generate_form_from_template(parent=None, template_types=None, edit=None, template=None, excluded_template_types=None): """If <edit> is None it will honor the template setting.""" if parent is None: parent = wx.GetApp().GetTopWindow() # 1) get template to use if template is None: template = manage_form_templates ( parent = parent, active_only = True, template_types = template_types, excluded_types = excluded_template_types ) if template is None: gmDispatcher.send(signal = 'statustext', msg = _('No document template selected.'), beep = False) return None if template['engine'] == 'O': return print_doc_from_ooo_template(template = template) wx.BeginBusyCursor() # 2) process template try: form = template.instantiate() except KeyError: _log.exception('cannot instantiate document template [%s]', template) gmGuiHelpers.gm_show_error ( aMessage = _('Invalid document template [%s - %s (%s)]') % (template['name_long'], template['external_version'], template['engine']), aTitle = _('Generating document from template') ) wx.EndBusyCursor() return None ph = gmMacro.gmPlaceholderHandler() #ph.debug = True form.substitute_placeholders(data_source = ph) if edit is None: if form.template['edit_after_substitution']: edit = True else: edit = False if edit: wx.EndBusyCursor() form.edit() wx.BeginBusyCursor() # 3) generate output pdf_name = form.generate_output() wx.EndBusyCursor() if pdf_name is not None: return form gmGuiHelpers.gm_show_error ( aMessage = _('Error generating document printout.'), aTitle = _('Generating document printout') ) return None
def generate_form_from_template(parent=None, template_types=None, edit=None, template=None, excluded_template_types=None): """If <edit> is None it will honor the template setting.""" if parent is None: parent = wx.GetApp().GetTopWindow() # 1) get template to use if template is None: template = manage_form_templates ( parent = parent, active_only = True, template_types = template_types, excluded_types = excluded_template_types ) if template is None: gmDispatcher.send(signal = 'statustext', msg = _('No document template selected.'), beep = False) return None if template['engine'] == 'O': return print_doc_from_ooo_template(template = template) wx.BeginBusyCursor() # 2) process template try: form = template.instantiate() except KeyError: _log.exception('cannot instantiate document template [%s]', template) gmGuiHelpers.gm_show_error ( aMessage = _('Invalid document template [%s - %s (%s)]') % (name, ver, template['engine']), aTitle = _('Generating document from template') ) wx.EndBusyCursor() return None ph = gmMacro.gmPlaceholderHandler() #ph.debug = True form.substitute_placeholders(data_source = ph) if edit is None: if form.template['edit_after_substitution']: edit = True else: edit = False if edit: wx.EndBusyCursor() form.edit() wx.BeginBusyCursor() # 3) generate output pdf_name = form.generate_output() wx.EndBusyCursor() if pdf_name is not None: return form gmGuiHelpers.gm_show_error ( aMessage = _('Error generating document printout.'), aTitle = _('Generating document printout') ) return None
def print_doc_from_ooo_template(template=None): # export template to file filename = template.save_to_file() if filename is None: gmGuiHelpers.gm_show_error ( _( 'Error exporting form template\n' '\n' ' "%s" (%s)' ) % (template['name_long'], template['external_version']), _('Letter template export') ) return False try: doc = gmForms.cOOoLetter(template_file = filename, instance_type = template['instance_type']) except ImportError: gmGuiHelpers.gm_show_error ( _('Cannot connect to OpenOffice.\n\n' 'The UNO bridge module for Python\n' 'is not installed.' ), _('Letter writer') ) return False if not doc.open_in_ooo(): gmGuiHelpers.gm_show_error ( _('Cannot connect to OpenOffice.\n' '\n' 'You may want to increase the option\n' '\n' ' <%s>' ) % _('OOo startup time'), _('Letter writer') ) try: os.remove(filename) except Exception: pass return False doc.show(False) ph_handler = gmMacro.gmPlaceholderHandler() doc.replace_placeholders(handler = ph_handler) filename = filename.replace('.ott', '.odt').replace('-FormTemplate-', '-FormInstance-') doc.save_in_ooo(filename = filename) doc.show(True) return True
def print_doc_from_ooo_template(template=None): # export template to file filename = template.save_to_file() if filename is None: gmGuiHelpers.gm_show_error ( _( 'Error exporting form template\n' '\n' ' "%s" (%s)' ) % (template['name_long'], template['external_version']), _('Letter template export') ) return False try: doc = gmForms.cOOoLetter(template_file = filename, instance_type = template['instance_type']) except ImportError: gmGuiHelpers.gm_show_error ( _('Cannot connect to OpenOffice.\n\n' 'The UNO bridge module for Python\n' 'is not installed.' ), _('Letter writer') ) return False if not doc.open_in_ooo(): gmGuiHelpers.gm_show_error ( _('Cannot connect to OpenOffice.\n' '\n' 'You may want to increase the option\n' '\n' ' <%s>' ) % _('OOo startup time'), _('Letter writer') ) try: os.remove(filename) except: pass return False doc.show(False) ph_handler = gmMacro.gmPlaceholderHandler() doc.replace_placeholders(handler = ph_handler) filename = filename.replace('.ott', '.odt').replace('-FormTemplate-', '-FormInstance-') doc.save_in_ooo(filename = filename) doc.show(True) return True