예제 #1
0
파일: printer.py 프로젝트: ClearMind/Amort
def get_document(file_name):
    path = os.path.join(MEDIA_ROOT, "template_docs/" + file_name)
    debug(__name__, path)
    
    local = uno.getComponentContext()
    resolver = local.ServiceManager.createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver", local)

    document = None
    try:
        context = resolver.resolve( "uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext" )
        desktop = context.ServiceManager.createInstanceWithContext("com.sun.star.frame.Desktop", context)
        document = desktop.loadComponentFromURL("file://" + path, "_blank", 0, ())
    except UnoException, e:
        error(__name__,"OpenOffice connection error: %s" % e.Message)
        return None
예제 #2
0
파일: printer.py 프로젝트: ClearMind/Amort
    path = os.path.join(MEDIA_ROOT, "template_docs/" + file_name)
    debug(__name__, path)
    
    local = uno.getComponentContext()
    resolver = local.ServiceManager.createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver", local)

    document = None
    try:
        context = resolver.resolve( "uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext" )
        desktop = context.ServiceManager.createInstanceWithContext("com.sun.star.frame.Desktop", context)
        document = desktop.loadComponentFromURL("file://" + path, "_blank", 0, ())
    except UnoException, e:
        error(__name__,"OpenOffice connection error: %s" % e.Message)
        return None

    debug(__name__, "Connected to OpenOffice")
    return document

def replace(document, what, for_what):
  ReplaceDescr = document.createReplaceDescriptor()
  ReplaceDescr.SearchString = "$%s" % what
  ReplaceDescr.ReplaceString = for_what
  Found = document.replaceAll( ReplaceDescr )

def generate(document, values, save_to):
    for k in values.keys():
        replace(document, k, values[k])

    file_name = 'file://' + save_to
    if file_name[-4:] != '.odt':
        file_name += '.odt'