path de la plantilla

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Ambrosio
Mensajes: 24
Registrado: Lun Abr 23, 2018 6:33 pm

path de la plantilla

Mensaje por Ambrosio »

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,
windows 7 // LibreOffice_5.4.5_Win_x86
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: path de la plantilla

Mensaje por fornelasa »

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!
Ambrosio
Mensajes: 24
Registrado: Lun Abr 23, 2018 6:33 pm

Re: path de la plantilla

Mensaje por Ambrosio »

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:

Código: Seleccionar todo

	GlobalScope.BasicLibraries.LoadLibrary( "Tools" )	
	pathURL = ThisComponent.getURL()
	pathFiche = ConvertFromUrl(pathURL)
	onde = DirectoryNameoutofPath(pathFiche, GetPathSeparator())
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.
windows 7 // LibreOffice_5.4.5_Win_x86
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: path de la plantilla

Mensaje por fornelasa »

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.
Tal vez te sirva esta sugerencia:
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!
Responder