J'ai écrit un script python qui permet de copier un autre script dans le document actif.
Code : Tout sélectionner
import uno
def copyscripttodoc(py_file):
from os import path
createUnoService = XSCRIPTCONTEXT.ctx.ServiceManager.createInstance
sfa = createUnoService("com.sun.star.ucb.SimpleFileAccess")
protocol = "vnd.sun.star.tdoc:/"
py_folder = "/Scripts/python/"
p = path.basename(py_file)
p_uri = py_file
doc = XSCRIPTCONTEXT.getDocument()
uid = doc.RuntimeUID
if not sfa.exists(f"{protocol}{uid}{py_folder}"):
sfa.createFolder(f"{protocol}{uid}{py_folder}")
sfa.copy(p_uri, f"{protocol}{uid}{py_folder}{p}")
Sous OpenOffice, il y a une erreur dès que sfa est appelé exemple sfa.exists(....). Peut-être que cela vient de f"{protocol}{uid}{py_folder}" qui n'est pas reconnu avec Python 2 de OpenOffice.
Pour tester, APSO doit être installé :
Dézippez Copiez CopyScript2Doc.py dans le sous dossier /Scripts/python du dossier utilisateur,
Copiez SYRACUSE.py dans le dossier Documents,
Lancez APSO, allez jusqu'à copyscripttodoc,
Lancez la console, tapez copyscripttodoc(....chemin vers SYRACUSE.py),
Vérifiez avec APSO que SYRACUSE.py figure bien dans le document actif.
Si vous avez des idées ...
Merci d'avance.