Projekt

Allgemein

Profil

Herunterladen (1,61 KB) Statistiken
| Zweig: | Markierung: | Revision:
#!/usr/bin/python

import uno, sys

from unohelper import Base, systemPathToFileUrl, absolutize
from os import getcwd
from os.path import splitext
from com.sun.star.beans import PropertyValue

def establish_connection(port):
local_ctx = uno.getComponentContext()
local_smgr = local_ctx.ServiceManager

resolver = local_smgr.createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver", local_ctx)
ctx = resolver.resolve("uno:socket,host=localhost,port=%s;urp;StarOffice.ComponentContext" % port)
smgr = ctx.ServiceManager

desktop = smgr.createInstanceWithContext("com.sun.star.frame.Desktop", ctx)

return desktop

def load_file(desktop, path):
cwd = systemPathToFileUrl(getcwd())
file_url = absolutize(cwd, systemPathToFileUrl(path))
sys.stderr.write(file_url + "\n")

in_props = (
# PropertyValue("Hidden", 0 , True, 0),
)
return desktop.loadComponentFromURL(file_url, "_blank", 0, in_props)


def write_pdf(doc, path):
out_props = (
PropertyValue("FilterName", 0, "writer_pdf_Export", 0),
PropertyValue("Overwrite", 0, True, 0),
)

(dest, ext) = splitext(path)
dest = dest + ".pdf"
dest_url = absolutize(systemPathToFileUrl(getcwd()), systemPathToFileUrl(dest))
sys.stderr.write(dest_url + "\n")
doc.storeToURL(dest_url, out_props)
doc.dispose()

def main():
if len(sys.argv) <= 2:
sys.exit(1)

try:
desktop = establish_connection(sys.argv[1])
except:
sys.exit(2)

try:
doc = load_file(desktop, sys.argv[2])
if not doc:
sys.exit(3)
except:
sys.exit(3)

try:
write_pdf(doc, sys.argv[2])
except:
sys.exit(4)

sys.exit(0)

main()
(15-15/21)