Hola,
Quiero obtener la path donde se encuentra la plantilla de un documento Writer.
En VBasic lo podía obtener con:
ActiveDocument.AttachedTemplate.Path
Como puedo hacerlo en Ooo Basic?
Saludos agradecidos,
path de la plantilla
path de la plantilla
windows 7 // LibreOffice_5.4.5_Win_x86
Re: path de la plantilla
Unas posibles opciones
Código: Seleccionar todo
Option VBASupport 1
Sub Ejemplo()
dato = ActiveDocument.Path
MsgBox dato
End Sub
Código: Seleccionar todo
ruta = Replace(ConvertFromUrl(ThisComponent.Location), "\" + ThisComponent.Title, "")
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: path de la plantilla
Hola,
No estoy seguro que lo que me propones resuelva mi problema. Como soy novato en este lenguaje de programación intentaré explicarme un poco más.
He elaborado con Libre Office Writer un documento con macros enlazadas a una barra de herramientas personalizada.
Este documento está dentro de una carpeta donde hay además algunos programas que llamo desde alguna de las macros. Si abro el documento, con el código siguiente puedo direccionar los comandos a la carpeta donde se encuentra el documento, que es donde se encuentran los otros programas que llamo desde las macros:
Cuando tengo que llamar a algun programa de la carpeta indico la path donde lo encontrará = "onde"
Al convertir el documento .ODT en plantilla (.OTT) no funciona porque supongo que con el código anterior "onde" indica la carpeta por defecto donde se crean los documentos nuevos y no la carpeta donde está la plantilla que genera el documento (pongo un icono en la pantalla direccionado a la plantilla para que haciendo doble clic abra un documento nuevo basado en esa plantilla con su barra de herramientas y sus macros).
Me imagino que tendría que substituir
pathURL = ThisComponent.getURL()
Por otro código parecido a
pathURL = ThisComponent.Template.getURL()
No sé como hacer para poder saber en qué carpeta está la plantilla que ha creado ese documento nuevo y que las macros entonces funcionen.
No estoy seguro que lo que me propones resuelva mi problema. Como soy novato en este lenguaje de programación intentaré explicarme un poco más.
He elaborado con Libre Office Writer un documento con macros enlazadas a una barra de herramientas personalizada.
Este documento está dentro de una carpeta donde hay además algunos programas que llamo desde alguna de las macros. Si abro el documento, con el código siguiente puedo direccionar los comandos a la carpeta donde se encuentra el documento, que es donde se encuentran los otros programas que llamo desde las macros:
Código: Seleccionar todo
GlobalScope.BasicLibraries.LoadLibrary( "Tools" )
pathURL = ThisComponent.getURL()
pathFiche = ConvertFromUrl(pathURL)
onde = DirectoryNameoutofPath(pathFiche, GetPathSeparator())
Al convertir el documento .ODT en plantilla (.OTT) no funciona porque supongo que con el código anterior "onde" indica la carpeta por defecto donde se crean los documentos nuevos y no la carpeta donde está la plantilla que genera el documento (pongo un icono en la pantalla direccionado a la plantilla para que haciendo doble clic abra un documento nuevo basado en esa plantilla con su barra de herramientas y sus macros).
Me imagino que tendría que substituir
pathURL = ThisComponent.getURL()
Por otro código parecido a
pathURL = ThisComponent.Template.getURL()
No sé como hacer para poder saber en qué carpeta está la plantilla que ha creado ese documento nuevo y que las macros entonces funcionen.
windows 7 // LibreOffice_5.4.5_Win_x86
Re: path de la plantilla
Tal vez te sirva esta sugerencia:No sé como hacer para poder saber en qué carpeta está la plantilla que ha creado ese documento nuevo y que las macros entonces funcionen.
Las plantillas se guardan siempre, o las puedes definir en:
Herramientas
Opciones
LibreOffice
Rutas
Analiza lo que hay ahí.
Saludos.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!