Development/Extension Development/es

Introducción
LibreOffice tiene 3 tipos de extensiones.


 * Si es un desarrollador de extensiones, puede usar varios idiomas para desarrollar extensiones de LibreOffice. Los lenguajes de programación admitidos son Basic, Python, JavaScript, Java y BeanShell. Para mayor nivel de integridad y posibilidades, puede usar los lenguajes C++, Python y Java para desarrollar extensiones basadas en complementos UNO. Están agrupados como archivos  y se pueden compartir en extensions.libreoffice.org.


 * Las extensiones son la forma preferida por los administradores de sistemas para modificar la configuración predeterminada. Una guía para desarrollar extensiones de configuración está disponible en formato [[Media:LibreOffice config extension writing.pdf|PDF]] o [[Media:LibreOffice config extension writing.odt|ODT]]. Una muestra de [[Media:Sample LO configuration extension.oxt|Extensión de configuración OXT]] acompaña a la guía.


 * También hay extensiones especiales de Calc conocidas como Complementos (Add-Ins) que agregan funciones de hoja de cálculo a Calc. Como componentes UNO, puede proporcionar nuevas implementaciones de la funcionalidad existente o componentes especializados como Calc Add-Ins, Add-Ons, DataPilots, Chart Add-Ins o componentes lingüísticos: Corrector ortográfico, Hyphenator o Thesaurus (vea la Documentación de Add-Ins).


 * También puede empaquetar extensiones para Plantillas, Galería y Textos automáticos adicionales.

Recursos
En un esfuerzo por no duplicar la información, puede consultar la documentación de OpenOffice. Todavía son en gran medida compatibles, pero se debe realizar una verificación adicional ya que LibreOffice avanza rápidamente (consulte las Notas de compatibilidad a continuación).


 * Extension development - esta página en la wiki de Apache OpenOffice
 * Desarrollo de extensiones inicio y tutoriales

Los recursos actuales se están consolidando actualmente en las páginas de ayuda de LibreOffice.

Antes de empezar, debe instalar el SDK.

Tutoriales de lenguajes

 * Libreoffice extension development with C++ - Part 1 - Getting to know UNO;

Muestras
Para impulsar el desarrollo, puede echar un vistazo a la fuente de las extensiones existentes.

Ejemplos:

Java

 * Starter Extension Extensión de inicio para ser utilizada como base para extensiones propias
 * Sidebar Extension Similar a la extensión de inicio, pero para crear una barra lateral propia
 * NOA-libre es un envoltorio de Java liviano orientado a objetos alrededor de la API de UNO de LibreOffice, que proporciona una abstracción de alto nivel de muchas interfaces de UNO.
 * UNOHelper ofrece funciones auxiliares para trabajar con la API de UNO. Envuelve las funciones de uso común de la API de UNO para un uso más fácil.
 * WollMux es una gran extensión de Java con funciones mejoradas de plantillas, formularios y autotexto.

Complemento de Eclipse
TDF ofrece el complemento de Eclipse LOEclipse que ayuda a desarrollar extensiones/componentes de LibreOffice en Java. Puede encontrarlo en Eclipse Marketplace.

Python

 * unodit Automatiza algunas de las tareas tediosas con diálogos para ayudarlo a escribir su propia extensión para LibreOffice en Python
 * el LibreOffice Love Letter Writer

Consulte también Desarrollo de extensiones de Python

C++

 * las extensiones de búsqueda de LibreOffice que agregan una entrada de menú contextual para buscar en línea el texto seleccionado]

El código fuente de LibreOffice también tiene una colección de Ejemplos SDK.

Notas de compatibilidad
Los desarrolladores de LibreOffice son conservadores cuando se trata de cambios en la API pública (UNO) y, por lo tanto, la mayoría de las extensiones escritas para OpenOffice.org o Apache OpenOffice seguirán funcionando con LibreOffice. Si se producen cambios, se indican en ReleaseNotes (cambios de API en 4.2, 4.1 y 4.0).


 * La dependencia  establece que una extensión funciona en las versiones de OpenOffice.org especificadas, así como en las versiones de LibreOffice que corresponden al menos a la versión de referencia de OpenOffice.org especificada. Todas las versiones de LibreOffice hasta la 4.2.3 informan que corresponden a la versión de referencia de OpenOffice.org 3.4, mientras que las versiones de LibreOffice desde 4.2.4 informan que corresponden a la versión de referencia de OpenOffice.org 4.1. - Usando esta dependencia, la extensión declara que solo usa funciones que se encuentran en la versión de referencia de OpenOffice.org especificada (y que, en consecuencia, funciona en todos los productos, no solo para OpenOffice.org en sí).


 * Si una extensión utiliza funciones específicas de LibreOffice, a partir de LibreOffice 3.5 puede especificar una nueva dependencia  con el espacio de nombres  . Su atributo   requerido (sin espacio de nombres) especifica la versión de LibreOffice con soporte mínimo; no debe contener un número de versión micro y no debe ser inferior a  . - El atributo   generalmente requerido (con el espacio de nombres  ) debe ser “ ” (donde   es el valor de versión dado). - Se pueden encontrar ejemplos en core/tree/desktop/test/deployment/dependencies: loversion35.oxt o loversion36.oxt.


 * Si una extensión está destinada a una versión específica de LibreOffice, a partir de LibreOffice 7.0 puede especificar una nueva dependencia  con el espacio de nombres   además de la dependencia  . - Esto debe ser raramente indicado.