Fichas de Referencia L.O. Basic
Ficha nº 9.
Parámetros de ejecución
Nivel: Avanzado
|
Esta ficha de referencia está bajo licencia de CreativeCommons BY-SA v3 (fr) o posterior.: https://creativecommons.org/licenses/by-sa/3.0/fr/ |
|
Este documento es una adaptación del documento original, en Francés, que se puede obtener en la Wiki de publicaciones de LibreOffice.
|
Versión |
Fecha |
Comentarios |
|
2.0 |
06/04/2021 |
Mise en forme. |
|
2.0_ES |
15/09/2026 |
Traducción y cambio de formato para esta versión |
Somos como enanos a hombros de gigantes. Si alcanzamos a ver más cosas y más lejanas que ellos, no es por la perspicacia de nuestra visión, ni por nuestra grandeza, sino porque son ellos quienes nos elevan. (atribuido a Bernard de Chartres )
Rutas de los archivos de usuario
Son las rutas definidas en Herramientas > Opciones > LibreOffice > Rutas . Para acceder a estas, se puede usar el servicio PathSettings
Dim oPaths As Object, Dirs As String
oPaths = CreateUnoService("com.sun.star.util.PathSettings")
Dirs = oPaths.getPropertyValue("Xxx")
(N. del T. El servicio PathSettings está obsoleto desde la versión 4,3 de L. O.y se recomienda usar en su lugar el singleton: com.sun.star.util.thePathSettings)
Dim oContext as object, oPaths as object, Dirs as string
oContext = getProcessServiceManager().DefaultContext
oPaths = oContext.getValueByName("/singletons/com.sun.star.util.thePathSettings")
Dirs = oPaths.Xxx
Dirs obtiene una cadena con los directorios de Xxx separados por punto y coma. Xxx es la propiedad correspondiente al directorio según la tabla.
En Algunas de las propiedades se pueden aislar sus variantes con prefijos _internal, _user y/o _writable (*Listing 168 oome)
|
La propiedad... |
… Indica el directorio de: |
|
Addin |
Complementos de la antigua API. |
|
AutoCorrect |
Parámetros del diálogo de corrección automática. |
|
AutoText |
Textos automáticos |
|
Backup |
Las copias de seguridad. |
|
Basic |
Archivos Basic utilizados por las macros. |
|
Bitmap |
Iconos de las barras de herramientas. |
|
Config |
Archivos de configuración. |
|
Dictionary |
Diccionarios proporcionados con la instalción. |
|
Favorite |
Respaldo de los marcadores de las carpetas. |
|
Filter |
Filtros |
|
Gallery |
Archivos multimedia y la base de datos de la Galería. |
|
Graphic |
Se muestra por defecto cuando se abre o graba un gráfico |
|
Help |
Archivos de Ayuda |
|
Linguistic |
Archivos para la revisión ortográfica. |
|
Module |
Módulos. |
|
Palette |
Archivos de las paletas de colores y estilos (.sob y .sof). |
|
Plugin |
Complementos o plug-in. |
|
Storage |
Información de servidores de correo, noticias y FTP. |
|
Temp |
Archivos temporales (usado por LibreOffice). |
|
Template |
Plantillas. |
|
UIConfig |
Archivos de configuración. |
|
UserConfig |
Ajustes propios del usuario. |
|
Work |
Directorio de trabajo (puede estar modificado por el usuario) |
|
BasePathShareLayer |
Directorio de configuración compartido([prog_inst]./share/config) |
|
BasePathUserLayer |
Directorio de configuración de usuario en red ?(..[usuario]/config) |
Ruta de instalación de una extensión o complemento
Use el «singleton» "/singletons/com.sun.star.deployment.PackageInformationProvider"
Dim oInfo As Object, Path As String
oInfo = GetDefaultContext.getByName("/singletons/com.sun.star.deployment.PackageInformationProvider")
If Not IsNull(oInfo) Then
Path = oInfo.getPackageLocation(ExtID)
End If
If (Path <> "") Then Path = Path & "/"
ExtID es el identificador único de la extensión (ej: "com.company.NombreExtension")
Path contiene el directorio (formato URL) o vacío si no se encuentra. También puede usar el expansor de cadenas que proporciona la macro UNO_USER_PACKAGES_CACHE
Se dispone de dos servicios complementarios: PathSubstitution y MacroExpander.
Uso del servicio PathSubstitution
Dim oSubst As Object, Resultado As String
oSubst = CreateUnoService("com.sun.star.util.PathSubstitution")
Resultado = oSubst.getSubstituteVariableValue("$(nombre_variable)")
La variable es una cadena que se debe indicar en la forma: $(nombre_variable)
El resultado devuelto es en formato URL.
Variables sustituibles:
|
La variable… |
… indica: |
|
$(inst) |
Directorio de instalación de LibreOffice. |
|
$(prog) |
Directorio de acceso al programa soffice. |
|
$(user) |
Directorio del usuario (usado por LibreOffice) |
|
$(work) |
Directorio de trabajo del usuario |
|
$(home) |
Directorio del usuario (sistema operativo). En Unix es «home». |
|
$(temp) |
Directorio de archivos temporales en uso. |
|
$(path) |
Indica el contenido de la variable de entono PATH. |
|
$(username) |
El nombre del usuario de la sesión en curso (en Windows es sin dominio) |
|
$(langid) |
El código del idioma utilizado por LibreOffice.Ej: 3082 para el español (España). |
|
$(vlang) |
El código del idioma utilizado por LibreOffice, en forma textual. (es = español). |
Uso del singleton expansor de (cadenas) macros
Mediante el singletón MacroExpander se pueden obtener /utilizar variables específicas del entorno propias de LibreOffice.
Utilice "/singletons/com.sun.star.util.theMacroExpander" y emplee su método ExpandMacros():
Dim oContext as Object 'objet contexto
Dim oMacroExpand as Object 'macro expansor
Dim Resultado As String
oContext = getProcessServiceManager().DefaultContext
oMacroExpand = oContext.getValueByName("/singletons/com.sun.star.util.theMacroExpander")
Resultado = oMacroExpand.ExpandMacros("$UNO_USER_PACKAGES_CACHE")
El nombre de una cadena macro debe empezar por $ como en el ejemplo precedente.
La ruta a los directorios o archivos que devuelve están en formato URL.
Macros
Vea : https://wiki.documentfoundation.org/Development/Environment_variables Algunas variables son específicas del sistema operativo y /o parámetros de configuración de LibreOffice.
Las cuatro primeras se suelen utilizar en el archivo de arranque (bootstrap.ini:) cuando se utiliza LibreOffice en modo servidor y las siguientes proporcionan algo de información.
|
ORIGIN |
Directorio de instalación de LibreOffice. |
|
SYSUSERCONFIG |
Directorio de la configuración del usuario en su sesión |
|
UNO_USER_PACKAGES_CACHE |
Directorio de almacenamiento de las extensiones. |
|
USERNAME |
Nombre de cuenta de usuario. |
|
OS |
Sistema operativo |
|
TMP |
Directorio temporal |
|
PYTHONPATH |
Directorio de Python |
|
PATH |
Lista de directorios incluidos en el path |
|
LANGUAGE |
Código completo del idioma (ej: es_ES.UTF-8) |
|
SYSTEMROOT |
Específico de Windows (ej: C:\Windows) |
En la linea de comandos, los parámetros deben ir precedidos por la ruta al ejecutable programa ej. C:\Program Files\LibreOffice\program\soffice.exe [parámetros]. Aquí sólo se describen las opciones más útiles para el uso de la linea de comandos en «macros».
Encontrará instrucciones completas en la siguiente página (EN) (verificado 04/2021):
https://dnimruoynepo.blogspot.fr/2016/12/command-line-arguments-in-libreoffice.html
Ayuda e información
|
--version |
Muestra el número de la versión. |
|
--nstemporarydirectory |
(sólo en el entorno de pruebas (sandbox) de MacOS X) |
Parámetros generales
|
--quickstart[=no] |
[Dés]activa el arranque rápido. Sólo se admite el valor (no), para desactivar el servicio |
|
--nolockcheck |
Desactiva la verificación de instancias remotas durante la instalación. |
|
--infilter={filtre} |
Obliga la elección de un tipo de filtro si es posible. Si no es posible |
|
--pidfile={archivo} |
Graba el pid de soffice.bin en {archivo}. |
|
--display {pantalla} |
Establece la variable de entorno al valor{pantalla}. (compatible |
Control de la interfaz de usuario
|
--nologo |
Desactiva el logotipo de presentación inicial. |
|
--minimized |
Se inicia en modo minimizado, y sin mostrar el logotipo inicial. |
|
--nodefault |
Se inicia sin ventana de inicio sólo muestra el logotipo |
|
--invisible |
Se inicia en modo invisible. No se muestra el logotipo ni la ventana |
|
--headless |
Se inicia en modo «headless» que permite usar la aplicación sin |
invisible frente a headless.
--invisible no desactiva la interfaz gráfica: documentos y diálogos se muestran en la pantalla. --headless o «modo silencioso» cuando no se necesita una interfaz gráfica
|
--norestore |
Desactiva el reinicio y la recuperación de archivos después de un |
|
--safe-mode |
Arranque en modo seguro. Este modo permite utilizar un perfil nuevo |
|
--accept={UNO-URL} |
Permite el uso de una cadena «UNO Accept String» al crear una |
|
--unaccept={UNO-URL} |
Cierra un canal de aceptación creado por --accept. |
Parámetros para el desarrollador
|
--terminate_after_init |
Sale después del inicio (sin carga de documento). |
|
--eventtesting |
Sale después de la carga de documentos. |
Creación de documentos
Estas opciones permiten crear documentos vacíos del tipo especificado, no es posible usar más que un solo tipo por comando. Cuando se especifica un nombre de archivo, LibreOffice intenta abrir ese archivo mediante el módulo indicado. Si no es posible, el archivo se abre con el más conveniente
Las opciones siguientes crean documentos vacíos del tipo especificado:
|
--writer |
--draw |
--base |
--math |
|
--calc |
--impress |
--global |
--web |
Apertura de archivos
Estos argumentos definen como se tratan los nombres de archivos. Un tratamiento nuevo comienza después del argumento y finaliza con el siguiente argumento. El tratamiento por defecto es la apertura de los archivos para su edición,o la creación de nuevos archivos a partir de una plantilla.
|
-n |
Trata los documentos especificados como plantillas para crear documentos nuevos. |
|
-o |
Abre los documentos especificados para su edición, se trate de plantillas o no. |
|
--pt {Impresora} |
Envía los documentos especificados a la impresora {Impresora}, y después los cierra.(el logotipo de inicio no se muestra). |
|
-p |
Envia los archivos especificados a la impresora predeterminada. |
|
--view |
Abre los archivos especificados en modo visualización (sólo lectura). |
|
--show |
Abre e inicia la presentación inmediatamente para cada uno de los |
|
-n |
Trata los documentos especificados como plantillas para crear documentos nuevos. |
|
--convert-to OutExt[:OutFilterName] [--outdir Directorio] |
Conversion de archivos por lotes ( --headless necesario). OutEx: extensión de los archivos destino - Si se utiliza varias veces --outdir sólo se toma en cuenta el último valor. -- convert-to pdf *.doc |
Una respuesta a la pregunta planteada en: Ask Libreoffice sobre el tema de los filtros enlaza con una lista de filtros disponibles en:
https://cgit.freedesktop.org/libreoffice/core/tree/filter/source/config/fragments/filters
(EN) (verificado 04/2021) o bien
https://github.com/LibreOffice/core/tree/master/filter/source/config/fragments/filters
|
--print-to-file [--printer-name Impresora_1] [--outdir Directorio_2] |
Impresión de archivos por lotes. |
|
--cat |
Envía el contenido de texto de los archivos especificados a la ventana del |
|
-env:var[=valor] |
Establezca una variable de bootstrap. |
Sintáxis
La opción --headless facilita la ejecución silenciosa (vea abajo).
Macro global
{soffice} "macro:///biblioteca/modulo/macro[(parametros)]"
Macro en un documento ODF
{soffice} ruta/a/doc.odf "macro://./biblioteca/modulo/macro[(parametros)]"
- {soffice} (según sistema operativo):
Windows: %programfiles%\libreoffice\program\soffice.exe
GNU/Linux:/opt/LibreOffice/program/soffice
No solo instalará una macro sino la biblioteca que la contiene.
Principio
Un archivo «contenedor» (Writer, Calc, etc.) contiene la macro que desea instalar y una macro de instalación.
La macro de instalación debe estar en la biblioteca Standard del documento.
la macro a instalar debe estar aislada de la «instaladora», es decir, en su propia biblioteca. La biblioteca que se instalará.
Salvo algún caso en particular, el tipo de archivo «contenedor» (Writer, Calc, etc.) no contiene ninguna información de la macro a instalar. Writer es un buen soporte puesto que permite documentar la instalación.
La macro a instalar
Colóquela en su propia biblioteca en el documento contenedor.
La macro instaladora
Su papel es copiar la biblioteca que se desea instalar al contenedor global Mis Macros. Se muestra un ejemplo del proceso de instalación de una biblioteca tipo «código»:
Dim oSrcLib As Object 'biblioteca origen (en el documento)
Dim oDestLib As Object 'biblioteca destino (en 'Mis Macros')
Dim i As Integer
Dim SrcModules() As String
'se crea la biblioteca destino si no existe
If Not GlobalScope.BasicLibraries.hasByName("bibl destino") Then
GlobalScope.BasicLibraries.createLibrary("bibl destino")
End If
'se copian los módulos
If BasicLibraries.hasByName("bibl origen") Then
BasicLibraries.loadLibrary("bibl origen")
oSrcLib = BasicLibraries.getByName("bibl origen")
oDestLib = GlobalScope.BasicLibraries.getByName("bibli destino")
SrcModules = oSrcLib.getElementNames()
'instalación de módulos uno a uno
i = LBound(SrcModules())
Do While (i <= uBound(SrcModules()))
If Not oDestLib.hasByName(SrcModules(i)) Then
oDestLib.insertByName(SrcModules(i), oSrcLib.getByName(SrcModules(i)))
End If
i = i + 1
Loop
End If
Para instalar una biblioteca de tipo «diálogo», remplace
BasicLibraries por DialogLibraries
y GlobalScope.BasicLibraries por GlobalScope.DialogLibraries.
Crear una extensión:
Consiste en empaquetar sus macro en forma de extensión para una mejor difusión.
Es una tarea bastante complicada. Consulte la página de la wiki Desarrollo de extensiones y El capítulo 4 de «Developers Guide» (en inglés)