Python storeAsUrl 无法保存文档
Python storeAsUrl fails to save document
此代码应打开一个模板并使用 storeAsUrl 保存它。它打开我的模板但无法保存它。我不知道为什么。
import pyuno
from os.path import realpath, join
from com.sun.star.beans import PropertyValue
SAVE_PATH = '/home/user/Bureau/'
FILENAME = 'P{0:04d}.doc'
TEMPLATE_PATH = '/home/user/Bureau/'
TEMPLATE_NAME = 'bal.ott'
def convert_path_to_url(path):
return pyuno.systemPathToFileUrl(realpath(path))
def python_bal(*args):
bal_doc = BALDocument(1)
bal_doc.save()
class BALDocument():
def __init__(self, id):
self.id = id
self.desktop = XSCRIPTCONTEXT.getDesktop()
template_url = convert_path_to_url(join(TEMPLATE_PATH, TEMPLATE_NAME))
args = (PropertyValue('Hidden', 0, False, 0),)
self.model = self.desktop.loadComponentFromURL(template_url, "_default", 0, args)
self.filename = FILENAME.format(id)
self.save_path = join(SAVE_PATH, self.filename)
def save(self):
url = convert_path_to_url(self.save_path)
args = (PropertyValue('FilterName', 0, 'MS Word 97', 0),)
self.model.storeAsUrl(url, args)
self.model.dispose()
g_exportedScripts = python_bal,
这是我放在 ~/.config/libreoffice/4/user/Scripts/python/
中的一个非常简单的脚本。我从空文档工具栏中的按钮启动它。我无法解决这个错误:
com.sun.star.uno.RuntimeExceptionError during invoking function python_bal in module file:///home/bastien/.config/libreoffice/4/user/Scripts/python/bbal.py (: storeAsUrl...)
我不知道它是否来自我创建的方式 self.desktop
。
方法名称中有一个拼写错误:storeAsURL
和 URL
解决了这个问题。
使用 uno 组件和 python 进行开发充满了陷阱,因为没有简单的 IDE 可以帮助您在开发时自动完成或检查代码。是的,有 XrayTools...
此代码应打开一个模板并使用 storeAsUrl 保存它。它打开我的模板但无法保存它。我不知道为什么。
import pyuno
from os.path import realpath, join
from com.sun.star.beans import PropertyValue
SAVE_PATH = '/home/user/Bureau/'
FILENAME = 'P{0:04d}.doc'
TEMPLATE_PATH = '/home/user/Bureau/'
TEMPLATE_NAME = 'bal.ott'
def convert_path_to_url(path):
return pyuno.systemPathToFileUrl(realpath(path))
def python_bal(*args):
bal_doc = BALDocument(1)
bal_doc.save()
class BALDocument():
def __init__(self, id):
self.id = id
self.desktop = XSCRIPTCONTEXT.getDesktop()
template_url = convert_path_to_url(join(TEMPLATE_PATH, TEMPLATE_NAME))
args = (PropertyValue('Hidden', 0, False, 0),)
self.model = self.desktop.loadComponentFromURL(template_url, "_default", 0, args)
self.filename = FILENAME.format(id)
self.save_path = join(SAVE_PATH, self.filename)
def save(self):
url = convert_path_to_url(self.save_path)
args = (PropertyValue('FilterName', 0, 'MS Word 97', 0),)
self.model.storeAsUrl(url, args)
self.model.dispose()
g_exportedScripts = python_bal,
这是我放在 ~/.config/libreoffice/4/user/Scripts/python/
中的一个非常简单的脚本。我从空文档工具栏中的按钮启动它。我无法解决这个错误:
com.sun.star.uno.RuntimeExceptionError during invoking function python_bal in module file:///home/bastien/.config/libreoffice/4/user/Scripts/python/bbal.py (: storeAsUrl...)
我不知道它是否来自我创建的方式 self.desktop
。
方法名称中有一个拼写错误:storeAsURL
和 URL
解决了这个问题。
使用 uno 组件和 python 进行开发充满了陷阱,因为没有简单的 IDE 可以帮助您在开发时自动完成或检查代码。是的,有 XrayTools...