path de la plantilla

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...

path de la plantilla

Notapor Ambrosio » Mar Nov 13, 2018 8:55 pm

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

Re: path de la plantilla

Notapor fornelasa » Mar Nov 13, 2018 9:43 pm

Unas posibles opciones
Código: Seleccionar todo   Expandir vistaContraer vista
Option VBASupport 1
Sub Ejemplo()
dato = ActiveDocument.Path
MsgBox dato
End Sub

Código: Seleccionar todo   Expandir vistaContraer vista
ruta = Replace(ConvertFromUrl(ThisComponent.Location), "\" + ThisComponent.Title, "")
lo 6.1.2 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
fornelasa
 
Mensajes: 3166
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: path de la plantilla

Notapor Ambrosio » Mié Nov 14, 2018 6:01 pm

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   Expandir vistaContraer vista
   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
Ambrosio
 
Mensajes: 19
Registrado: Lun Abr 23, 2018 6:33 pm

Re: path de la plantilla

Notapor fornelasa » Mié Nov 14, 2018 7:28 pm

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.1.2 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
fornelasa
 
Mensajes: 3166
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado