运行 来自 python 的 libreoffice 本地宏?
run libreoffice local macro from python?
在 python 脚本中,我知道我可以在我的宏库容器中执行自定义 libreoffice 宏,方法是获取调度程序并执行:
dispatcher.executeDispatch(帧, "macro:///Standard.Module1.mymacro", "", 0, ())
但是如何调用本地文档特定的宏?我认为 "macro///" 有一个替代术语,例如 "document///" 可以使上述调用正常工作,但我无法在任何地方找到任何文档。宏调用字符串的正确格式是什么?
从文档中获取脚本提供程序并使用它来调用宏。
desktop = XSCRIPTCONTEXT.getDesktop()
file_url = uno.systemPathToFileUrl("C:/path/to/file.odt")
doc = desktop.loadComponentFromURL(file_url, "_blank", 0, ())
oScriptProvider = doc.getScriptProvider()
oScript = oScriptProvider.getScript(
"vnd.sun.star.script:Standard.Module1.mymacro?"
"language=Basic&location=document")
oScript.invoke((), (), ())
改编自。
在 python 脚本中,我知道我可以在我的宏库容器中执行自定义 libreoffice 宏,方法是获取调度程序并执行:
dispatcher.executeDispatch(帧, "macro:///Standard.Module1.mymacro", "", 0, ())
但是如何调用本地文档特定的宏?我认为 "macro///" 有一个替代术语,例如 "document///" 可以使上述调用正常工作,但我无法在任何地方找到任何文档。宏调用字符串的正确格式是什么?
从文档中获取脚本提供程序并使用它来调用宏。
desktop = XSCRIPTCONTEXT.getDesktop()
file_url = uno.systemPathToFileUrl("C:/path/to/file.odt")
doc = desktop.loadComponentFromURL(file_url, "_blank", 0, ())
oScriptProvider = doc.getScriptProvider()
oScript = oScriptProvider.getScript(
"vnd.sun.star.script:Standard.Module1.mymacro?"
"language=Basic&location=document")
oScript.invoke((), (), ())
改编自